Guess that wcwidth works on glibc systems.
[gnulib.git] / ChangeLog
index 09cc027..f4ababb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,503 @@
+2009-07-14  Bruno Haible  <bruno@clisp.org>
+
+       * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Guess it works on glibc systems.
+       Reported by anonymous kc.
+
+2009-07-07  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: don't look for translatable strings in *.m4 or *.mk
+       * top/maint.mk (sc_po_check): Skip *.m4 and *.mk files,
+       when searching for translatable strings.
+
+2009-07-05  Jim Meyering  <meyering@redhat.com>
+
+       remove superfluous parentheses in STREQ definition
+       * tests/test-argv-iter.c (STREQ): Remove redundant parentheses.
+       * lib/getugroups.c (STREQ): Likewise.
+       * lib/fnmatch.c (STREQ): Likewise.
+       Spotted by Bruno Haible.
+
+2009-07-04  Jim Meyering  <meyering@redhat.com>
+
+       argv-iter: new module
+       * MODULES.html.sh: Add argv-iter.
+       * lib/argv-iter.c, lib/argv-iter.h: New files.
+       * modules/argv-iter: New file.
+       * modules/argv-iter-tests: New file.
+       * tests/test-argv-iter.c: Test it.
+
+2009-07-04  Bruno Haible  <bruno@clisp.org>
+
+       Fix assertion.
+       * lib/git-merge-changelog.c (compute_mapping): In the case where file1
+       contains more exact copies of a given entry than file2, leave the extra
+       copies unpaired rather than aborting.
+       Reported by Eric Blake.
+
+2009-07-02  Bruno Haible  <bruno@clisp.org>
+
+       Speedup git-merge-changelog for git cherry-pick.
+       * lib/git-merge-changelog.c (struct entries_mapping): New type.
+       (entries_mapping_get): New function, extracted from compute_mapping.
+       (entries_mapping_reverse_get): New function.
+       (compute_mapping): Add a 'full' argument. Return the result in a
+       'struct entries_mapping'.
+       (main): Update. Access the mappings through entries_mapping_get.
+       Reported by Eric Blake.
+
+2009-07-02  Bruno Haible  <bruno@clisp.org>
+
+       * lib/git-merge-changelog.c (compute_mapping): Fix determination of
+       best_i.
+
+2009-07-02  Bruno Haible  <bruno@clisp.org>
+
+       Speed up approximate search for matching ChangeLog entries.
+       * lib/git-merge-changelog.c (entry_fstrcmp): Add a lower_bound
+       argument. Call fstrcmp_bounded instead of fstrcmp.
+       (compute_mapping, try_split_merged_entry, main): Update callers.
+
+2009-07-02  Bruno Haible  <bruno@clisp.org>
+
+       * lib/git-merge-changelog.c (main): Add comment about git cherry-pick.
+
+2009-06-30  Bruno Haible  <bruno@clisp.org>
+
+       Reduce the number of uc_is_cased calls.
+       * lib/unicase.h (casing_suffix_context_t): Add
+       'first_char_except_ignorable' field.
+       * lib/unicase/context.h (SCC_FINAL_SIGMA_MASK): Remove macro.
+       (SCC_MORE_ABOVE_MASK, SCC_BEFORE_DOT_MASK): Update.
+       * lib/unicase/empty-suffix-context.c (unicase_empty_suffix_context):
+       Update initializer.
+       * lib/unicase/u-casemap.h (FUNC): Don't invoke uc_is_cased on
+       case-ignorable characters.
+       * lib/unicase/u-ct-totitle.h (FUNC): Likewise.
+       * lib/unicase/u-suffix-context.h (FUNC2): Don't call uc_is_cased here.
+       * modules/unicase/u8-suffix-context (Depends-on): Remove unicase/cased.
+       * modules/unicase/u16-suffix-context (Depends-on): Likewise.
+       * modules/unicase/u32-suffix-context (Depends-on): Likewise.
+
+2009-06-30  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'unicase/ignorable'.
+       * modules/unicase/ignorable-tests: New file.
+       * tests/unicase/test-ignorable.c: New file, generated by
+       gen-uni-tables.
+
+       Tests for module 'unicase/cased'.
+       * modules/unicase/cased-tests: New file.
+       * tests/unicase/test-cased.c: New file, generated by gen-uni-tables.
+       * tests/unicase/test-predicate-part1.h: New file, derived from
+       tests/unictype/test-predicate-part1.h.
+       * tests/unicase/test-predicate-part2.h: New file, same as
+       tests/unictype/test-predicate-part2.h.
+
+       Fix evaluation of "Before C" condition of FINAL_SIGMA.
+       * lib/gen-uni-tables.c (is_cased, is_case_ignorable): New functions.
+       (output_casing_properties): New function.
+       (main): Call it.
+       * lib/unicase/cased.h: New file, generated by gen-uni-tables.
+       * lib/unicase/cased.c: Include unictype/bitmap.h.
+       (uc_is_cased): Define through a bitmap lookup.
+       * lib/unicase/ignorable.h: New file, generated by gen-uni-tables.
+       * lib/unicase/ignorable.c: Include unictype/bitmap.h.
+       (uc_is_case_ignorable): Define through a bitmap lookup.
+       * modules/unicase/cased (Files): Add lib/unicase/cased.h,
+       lib/unictype/bitmap.h.
+       (Depends-on): Add inline. Clean up.
+       * modules/unicase/ignorable (Files): Add lib/unicase/ignorable.h,
+       lib/unictype/bitmap.h.
+       (Depends-on): Add inline. Clean up.
+       * tests/unicase/test-u8-tolower.c (main): Add more tests of FINAL_SIGMA
+       recognition.
+       * tests/unicase/test-u16-tolower.c (main): Likewise.
+       * tests/unicase/test-u32-tolower.c (main): Likewise.
+
+2009-06-30  Bruno Haible  <bruno@clisp.org>
+
+       * lib/unicase/u8-casemap.c: Don't include uniwbrk.h.
+       * lib/unicase/u16-casemap.c: Likewise.
+       * lib/unicase/u32-casemap.c: Likewise.
+
+2009-06-29  Bruno Haible  <bruno@clisp.org>
+
+       Define u32_casefold as a wrapper around u32_ct_casefold.
+       * lib/unicase/u32-casefold.c: Update.
+       * modules/unicase/u32-casefold (Depends-on): Add
+       unicase/u32-ct-casefold, unicase/empty-prefix-context,
+       unicase/empty-suffix-context. Clean up.
+
+       Define u16_casefold as a wrapper around u16_ct_casefold.
+       * lib/unicase/u16-casefold.c: Update.
+       * modules/unicase/u16-casefold (Depends-on): Add
+       unicase/u16-ct-casefold, unicase/empty-prefix-context,
+       unicase/empty-suffix-context. Clean up.
+
+       Define u8_casefold as a wrapper around u8_ct_casefold.
+       * lib/unicase/u-casefold.h (FUNC): Delegate to U_CT_CASEFOLD.
+       * lib/unicase/u8-casefold.c: Update.
+       * modules/unicase/u8-casefold (Depends-on): Add unicase/u8-ct-casefold,
+       unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up.
+
+       Define u32_totitle as a wrapper around u32_ct_totitle.
+       * lib/unicase/u32-totitle.c: Update.
+       * modules/unicase/u32-totitle (Depends-on): Add unicase/u32-ct-totitle,
+       unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up.
+
+       Define u16_totitle as a wrapper around u16_ct_totitle.
+       * lib/unicase/u16-totitle.c: Update.
+       * modules/unicase/u16-totitle (Depends-on): Add unicase/u16-ct-totitle,
+       unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up.
+
+       Define u8_totitle as a wrapper around u8_ct_totitle.
+       * lib/unicase/u-totitle.h (is_cased, is_case_ignorable): Remove
+       functions.
+       (FUNC): Delegate to U_CT_TOTITLE.
+       * lib/unicase/u8-totitle.c: Update.
+       * modules/unicase/u8-totitle (Depends-on): Add unicase/u8-ct-totitle,
+       unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up.
+
+       * lib/unicase/u32-tolower.c (u32_tolower): Update u32_casemap
+       invocation.
+       * modules/unicase/u32-tolower (Depends-on): Add
+       unicase/empty-prefix-context, unicase/empty-suffix-context.
+
+       * lib/unicase/u16-tolower.c (u16_tolower): Update u16_casemap
+       invocation.
+       * modules/unicase/u16-tolower (Depends-on): Add
+       unicase/empty-prefix-context, unicase/empty-suffix-context.
+
+       * lib/unicase/u8-tolower.c (u8_tolower): Update u8_casemap invocation.
+       * modules/unicase/u8-tolower (Depends-on): Add
+       unicase/empty-prefix-context, unicase/empty-suffix-context.
+
+       * lib/unicase/u32-toupper.c (u32_toupper): Update u32_casemap
+       invocation.
+       * modules/unicase/u32-toupper (Depends-on): Add
+       unicase/empty-prefix-context, unicase/empty-suffix-context.
+
+       * lib/unicase/u16-toupper.c (u16_toupper): Update u16_casemap
+       invocation.
+       * modules/unicase/u16-toupper (Depends-on): Add
+       unicase/empty-prefix-context, unicase/empty-suffix-context.
+
+       * lib/unicase/u8-toupper.c (u8_toupper): Update u8_casemap invocation.
+       * modules/unicase/u8-toupper (Depends-on): Add
+       unicase/empty-prefix-context, unicase/empty-suffix-context.
+
+       New module 'unicase/u32-ct-casefold'.
+       * lib/unicase/u32-ct-casefold.c: New file.
+       * modules/unicase/u32-ct-casefold: New file.
+
+       New module 'unicase/u16-ct-casefold'.
+       * lib/unicase/u16-ct-casefold.c: New file.
+       * modules/unicase/u16-ct-casefold: New file.
+
+       New module 'unicase/u8-ct-casefold'.
+       * lib/unicase/u8-ct-casefold.c: New file.
+       * lib/unicase/u-ct-casefold.h: New file, derived from
+       lib/unicase/u-casefold.h.
+       * modules/unicase/u8-ct-casefold: New file.
+
+       New module 'unicase/u32-ct-totitle'.
+       * lib/unicase/u32-ct-totitle.c: New file.
+       * modules/unicase/u32-ct-totitle: New file.
+
+       New module 'unicase/u16-ct-totitle'.
+       * lib/unicase/u16-ct-totitle.c: New file.
+       * modules/unicase/u16-ct-totitle: New file.
+
+       New module 'unicase/u8-ct-totitle'.
+       * lib/unicase/u8-ct-totitle.c: New file.
+       * lib/unicase/u-ct-totitle.h: New file, derived from
+       lib/unicase/u-totitle.h.
+       * modules/unicase/u8-ct-totitle: New file.
+
+       New module 'unicase/u32-ct-tolower'.
+       * lib/unicase/u32-ct-tolower.c: New file.
+       * modules/unicase/u32-ct-tolower: New file.
+
+       New module 'unicase/u16-ct-tolower'.
+       * lib/unicase/u16-ct-tolower.c: New file.
+       * modules/unicase/u16-ct-tolower: New file.
+
+       New module 'unicase/u8-ct-tolower'.
+       * lib/unicase/u8-ct-tolower.c: New file.
+       * modules/unicase/u8-ct-tolower: New file.
+
+       New module 'unicase/u32-ct-toupper'.
+       * lib/unicase/u32-ct-toupper.c: New file.
+       * modules/unicase/u32-ct-toupper: New file.
+
+       New module 'unicase/u16-ct-toupper'.
+       * lib/unicase/u16-ct-toupper.c: New file.
+       * modules/unicase/u16-ct-toupper: New file.
+
+       New module 'unicase/u8-ct-toupper'.
+       * lib/unicase/u8-ct-toupper.c: New file.
+       * modules/unicase/u8-ct-toupper: New file.
+
+       Add context arguments to u*_casemap functions.
+       * lib/unicase/unicasemap.h: Include unicase.h.
+       (u8_casemap, u16_casemap, u32_casemap): Add prefix_context and
+       suffix_context arguments.
+       * lib/unicase/u-casemap.h (is_cased, is_case_ignorable): Remove
+       functions.
+       (FUNC): Add prefix_context and suffix_context arguments. Use
+       uc_is_cased and uc_is_case_ignorable.
+       * lib/unicase/u8-casemap.c: Include caseprop.h and context.h.
+       * lib/unicase/u16-casemap.c: Likewise.
+       * lib/unicase/u32-casemap.c: Likewise.
+       * modules/unicase/u8-casemap (Files): Add lib/unicase/context.h.
+       (Depends-on): Add unicase/cased, unicase/ignorable. Clean up.
+       * modules/unicase/u16-casemap (Files): Add lib/unicase/context.h.
+       (Depends-on): Add unicase/cased, unicase/ignorable. Clean up.
+       * modules/unicase/u32-casemap (Files): Add lib/unicase/context.h.
+       (Depends-on): Add unicase/cased, unicase/ignorable. Clean up.
+
+       New module 'unicase/u32-suffix-context'.
+       * lib/unicase/u32-suffix-context.c: New file.
+       * modules/unicase/u32-suffix-context: New file.
+
+       New module 'unicase/u16-suffix-context'.
+       * lib/unicase/u16-suffix-context.c: New file.
+       * modules/unicase/u16-suffix-context: New file.
+
+       New module 'unicase/u8-suffix-context'.
+       * lib/unicase/u8-suffix-context.c: New file.
+       * lib/unicase/u-suffix-context.h: New file.
+       * modules/unicase/u8-suffix-context: New file.
+
+       New module 'unicase/empty-suffix-context'.
+       * lib/unicase/empty-suffix-context.c: New file.
+       * modules/unicase/empty-suffix-context: New file.
+
+       New module 'unicase/u32-prefix-context'.
+       * lib/unicase/u32-prefix-context.c: New file.
+       * modules/unicase/u32-prefix-context: New file.
+
+       New module 'unicase/u16-prefix-context'.
+       * lib/unicase/u16-prefix-context.c: New file.
+       * modules/unicase/u16-prefix-context: New file.
+
+       New module 'unicase/u8-prefix-context'.
+       * lib/unicase/u8-prefix-context.c: New file.
+       * lib/unicase/u-prefix-context.h: New file.
+       * lib/unicase/context.h: New file.
+       * modules/unicase/u8-prefix-context: New file.
+
+       New module 'unicase/empty-prefix-context'.
+       * lib/unicase/empty-prefix-context.c: New file.
+       * modules/unicase/empty-prefix-context: New file.
+
+       New module 'unicase/ignorable'.
+       * lib/unicase/ignorable.c: New file.
+       * modules/unicase/ignorable: New file.
+
+       New module 'unicase/cased'.
+       * lib/unicase/caseprop.h: New file.
+       * lib/unicase/cased.c: New file.
+       * modules/unicase/cased: New file.
+
+       New functions for case mapping of substrings.
+       * lib/unicase.h (casing_prefix_context_t): New type.
+       (unicase_empty_prefix_context): New variable.
+       (u8_casing_prefix_context, u16_casing_prefix_context,
+       u32_casing_prefix_context, u8_casing_prefixes_context,
+       u16_casing_prefixes_context, u32_casing_prefixes_context): New
+       declarations.
+       (casing_suffix_context_t): New type.
+       (unicase_empty_suffix_context): New variable.
+       (u8_casing_suffix_context, u16_casing_suffix_context,
+       u32_casing_suffix_context, u8_casing_suffixes_context,
+       u16_casing_suffixes_context, u32_casing_suffixes_context,
+       u8_ct_toupper, u16_ct_toupper, u32_ct_toupper, u8_ct_tolower,
+       u16_ct_tolower, u32_ct_tolower, u8_ct_totitle, u16_ct_totitle,
+       u32_ct_totitle, u8_ct_casefold, u16_ct_casefold, u32_ct_casefold): New
+       declarations.
+
+2009-06-28  Jim Meyering  <meyering@redhat.com>
+
+       boostrap: indent only with spaces
+       * build-aux/bootstrap: Indent only with spaces, never TABs.
+
+       bootstrap: split long lines
+       * build-aux/bootstrap: Keep line length < 80.
+
+       bootstrap: sync from coreutils
+       * build-aux/bootstrap: Honor variables like $ACLOCAL, etc.,
+       just as autoreconf does.  Verify a list of prerequisite
+       package-name,version-number pairs if defined in bootstrap.conf.
+       Refer to README-prereq, if prerequisites are not satisfied.
+
+2009-06-27  Eric Blake  <ebb9@byu.net>
+
+       tests: add test for bogus NULL definition
+       * tests/test-stdio.c: Ensure POSIX 2008 requirement on NULL.
+       * tests/test-stdlib.c: Likewise.
+       * tests/test-string.c: Likewise.
+       * tests/test-locale.c: Likewise.
+       * tests/test-unistd.c: Likewise.
+       * modules/stdio-tests (Depends-on): Add verify.
+       * modules/stdlib-tests (Depends-on): Likewise.
+       * modules/string-tests (Depends-on): Likewise.
+       * modules/locale-tests (Depends-on): Likewise.
+       * modules/unistd-tests (Depends-on): Likewise.
+
+2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * m4/selinux-context-h (gl_HEADERS_SELINUX_CONTEXT_H): Remove
+       self-explaining comment.
+       * m4/selinux-selinux-h: Update serial.
+       (gl_LIBSELINUX): New macro, adding a warning for missing development
+       packages to code extracted from...
+       (gl_HEADERS_SELINUX_SELINUX_H): ... this one.  Require gl_LIBSELINUX.
+       Add warning for missing development packages here, too.
+
+2009-06-26  Paolo Bonzini  <bonzini@gnu.org>
+
+       * build-aux/bootstrap: Do not use GIT_CONFIG_LOCAL.
+
+2009-06-25  Eric Blake  <ebb9@byu.net>
+
+       version-etc: fix regression
+       * lib/version-etc.h (ATTRIBUTE_SENTINEL): Define for new enough
+       gcc.
+       (version_etc): Use it, to catch bugs with trailing NULL.
+       * lib/version-etc.c (version_etc_arn): Delete unused argument.
+       (version_etc_va): Fix logic bug.
+       * modules/version-etc-tests: Add test.
+       * tests/test-version-etc.c: New file.
+       * tests/test-version-etc.sh: Likewise.
+
+2009-06-25  Sam Steingold  <sds@gnu.org>
+
+       * mbrtowc.m4 (gl_MBRTOWC_SANITYCHECK): Include <stdlib.h>, for the
+       mbtowc declaration.
+
+2009-06-25  Eric Blake  <ebb9@byu.net>
+
+       fpurge: migrate into <stdio.h>
+       * lib/fpurge.h: Delete...
+       * lib/stdio.in.h (fpurge): ...and declare here, instead.
+       * lib/fpurge.c (fpurge): Change declaring header.
+       * modules/fpurge (Files): Drop deleted file.
+       (Depends-on): Add stdio.
+       (configure.ac): Set witness.
+       * modules/stdio (Makefile.am): Support fpurge macros.
+       * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
+       * m4/fpurge.m4 (gl_FUNC_FPURGE): Set appropriate variables.
+       * lib/fflush.c: Update client.
+       * tests/test-fpurge.c: Likewise.
+       * NEWS: Mention the change.
+
+2009-06-25  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       * lib/argp-version-etc.c (program_authors): Add const
+       qualifier.
+       * lib/version-etc.c: Fix typos in the comments.
+       * modules/argp-version-etc: Depends on version-etc.
+
+2009-06-25  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       argp-version-etc: new module.
+
+       * lib/argp-version-etc.c: New file.
+       * lib/argp-version-etc.h: New file.
+       * modules/argp-version-etc: New file.
+       * modules/argp-version-etc-tests: New file.
+       * tests/test-argp-version-etc.c: New test.
+       * tests/test-argp-version-etc-1.sh: New test.
+
+2009-06-25  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Provide additional interfaces and documentation for version-etc
+       module.
+
+       * lib/version-etc.c (version_etc_arn, version_etc_ar): New
+       interfaces.
+       * lib/version-etc.h (version_etc_arn, version_etc_ar): New
+       prototypes.
+
+2009-06-24  Bruno Haible  <bruno@clisp.org>
+
+       * m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): Fix description of
+       HAVE_LIB${NAME} macro.
+       Reported by Sam Steingold <sds@gnu.org>.
+
+2009-06-23  Simon Josefsson  <simon@josefsson.org>
+
+       * modules/hash-tests (test_hash_LDADD): Link to libintl when
+       needed.
+
+2009-06-21  Bruno Haible  <bruno@clisp.org>
+
+       Make two consecutive identical invocations of AC_LIB_HAVE_LINKFLAGS
+       work.
+       * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Reset HAVE_LIB${NAME}
+       together with LIB${NAME}, LTLIB${NAME}.
+       Reported by Sam Steingold <sds@gnu.org>.
+
+2009-06-20  Jim Meyering  <meyering@redhat.com>
+
+       tests: make sc_require_test_exit_idiom more generic
+       * top/maint.mk (Exit_witness_file): New overridable variable.
+       (sc_require_test_exit_idiom): Don't hard-code tests/test-lib.sh.
+       Relax test for /^Exit \$fail$$/ to just /^Exit ./.
+
+2009-06-19  Jim Meyering  <meyering@redhat.com>
+
+       hash: reverse order of src/dst parameters in an internal interface
+       * lib/hash.c (transfer_entries): Reverse order of parameters to
+       put DST before SRC.  Adjust callers.
+
+       tests: test-hash: avoid wholesale duplication
+       * tests/test-hash.c (main): Don't copy/paste a 60-line loop.
+       Instead, use a loop and add a single conditional.
+
+       tests: test-hash: allow seed selection via a command line argument
+       * tests/test-hash.c (get_seed): New function.
+       (main): Use it.
+
+2009-06-19  Eric Blake  <ebb9@byu.net>
+
+       hash: avoid memory leak on allocation failure
+       * lib/hash.c: (hash_rehash): Avoid memory leak on allocation
+       failure.  Factor repeated algorithm...
+       (transfer_entries): ...into new helper routine.
+       (hash_delete): React to hash_rehash return value.
+
+       hash: reduce memory pressure in hash_rehash no-op case
+       * lib/hash.c (next_prime): Avoid overflow.
+       (hash_initialize): Factor bucket size computation...
+       (compute_bucket_size): ...into new helper function.
+       (hash_rehash): Use new function and open coding to reduce memory
+       pressure, and avoid a memory leak in USE_OBSTACK code.
+       Reported by Jim Meyering.
+
 2009-06-18  Eric Blake  <ebb9@byu.net>
 
+       hash: make rotation more obvious
+       * modules/hash (Depends-on): Add bitrotate and stdint.
+       * lib/bitrotate.h (rotl_sz, rotr_sz): New functions.
+       * lib/hash.c (headers): Drop limits.h.  Add stdint.h.
+       (SIZE_MAX): Rely on headers for definition.
+       (hash_string) [USE_DIFF_HASH]: Use rotl_sz.
+       (raw_hasher): Use rotr_sz.
+       Suggested by Jim Meyering.
+
+       hash: fix memory leak in last patch
+       * lib/hash.c (hash_rehash): Avoid memory leak.
+
+       hash: avoid no-op rehashing
+       * lib/hash.c (hash_rehash): Recognize useless rehash attempts.
+
+       hash: provide default callback functions
+       * lib/hash.c (raw_hasher, raw_comparator): New functions.
+       (hash_initialize): Use them as defaults.
+       * tests/test-hash.c (main): Test this.
+
        hash: minor optimization
        * lib/hash.c (hash_lookup, hash_find_entry): Avoid function call
        when possible.