strstr: expand test coverage
[gnulib.git] / ChangeLog
index 237dffc..e349a4e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,330 @@
+2011-02-25  Eric Blake  <eblake@redhat.com>
+
+       strstr: expand test coverage
+       * tests/test-strstr.c (main): Add much shorter trigger.  Fix C89
+       compilation.
+       * tests/test-memmem.c (main): Duplicate tests.
+       * tests/test-strcasestr.c (main): Likewise.
+       * tests/test-c-strcasestr.c (main): Likewise.
+
+2011-02-25  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: detect missing-NL-at-EOF, too
+       * top/maint.mk (sc_prohibit_empty_lines_at_EOF): Adjust so that
+       it also detects when a file lacks a newline at EOF.
+       (require_exactly_one_NL_at_EOF_): Renamed from
+       detect_empty_lines_at_EOF_.  I opted not to rename the rule,
+       since people may well have .x-sc_... file names tied to the
+       existing name.  Suggested by Eric Blake.
+
+2011-02-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       dirname: move m4/dos.m4 functionality into lib/dosname.h
+
+       m4/dos.m4 needs to go.  It laboriously invokes the C compiler, and
+       extracts symbols from it, puts them into config.h; but it's much
+       easier to use the symbols directly.  filename.h already does this,
+       but it disagrees with dos.m4 in some respects.  This patch
+       introduces a different include file dosname.h that packages up
+       dos.m4, and then later we can work on merging filename.h and
+       dosname.h.  Applications that need only the easy-to-configure
+       symbols should consider including dosname.h rather than dirname.h.
+       * NEWS: Mention incompatible changes.
+       * m4/dos.m4: Remove.
+       * lib/dosname.h, modules/dosname: New files.
+       * lib/dirname.h (ISSLASH, FILE_SYSTEM_PREFIX_LEN):
+       (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE):
+       (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): Move to lib/dosname.h.
+       * lib/at-func.c, lib/at-func2.c, lib/openat.c, lib/savewd.c:
+       Include dosname.h, not dirname.h.
+       * lib/rmdir.c, lib/stat.c, lib/unlink.c, lib/unlinkat.c:
+       Include dosname.h, for definitions of symbols like ISSLASH
+       that used to be in config.h.
+       * m4/dirname.m4 (gl_DIRNAME_LGPL): Do not require gl_AC_DOS.
+       * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
+       * m4/stat.m4 (gl_FUNC_STAT): Likewise.
+       * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
+       * modules/dirname-lgpl (Files): Omit m4/dos.m4.
+       * modules/rmdir (Files): Likewise.
+       * modules/stat (Files): Likewise.
+       * modules/unlink (Files): Likewise.
+       * modules/dirname-lgpl (Depends-on): Add dosname.
+       * modules/lstat (Depends-on): Likewise.
+       * modules/openat (Depends-on): Likewise.
+       * modules/rmdir (Depends-on): Likewise.
+       * modules/savewd (Depends-on): Likewise.
+       * modules/stat (Depends-on): Likewise.
+       * modules/unlink (Depends-on): Likewise.
+       * modules/openat (Depends-on): Remove dirname-lgpl.
+       * modules/savewd (Depends-on): Likewise.
+       * tests/test-dirname.c: Do not use removed symbols like
+       FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR.  Instead, use
+       the remaining symbols, e.g., ISSLASH ('\\').
+
+2011-02-25  Eric Blake  <eblake@redhat.com>
+
+       strstr: revert patches that introduced bug and pessimization
+       * lib/str-two-way.h: Add another reference.
+       (two_way_short_needle, two_way_long_needle): Revert changes from
+       2011-02-24; they pessimize search speed.
+       (critical_factorization): Partially revert changes from
+       2010-06-22; they violate the requirement that the left half of the
+       needle be smaller than the period of the needle.
+
+2011-02-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       filenamecat: remove unnecessary dependency on dirname-lgpl
+       * modules/filenamecat (Depends-on): Remove dirname-lgpl, as there
+       is no direct dependency, just an indirect one via filenamecat-lgpl.
+
+       remove: remove unnecessary use of m4/dos.m4
+       * m4/remove.m4 (gl_FUNC_REMOVE): Don't require gl_AC_DOS; not needed.
+       * modules/remove (FILES): Remove m4/dos.m4.
+
+       * lib/openat-proc.c: Don't include dirname.h; not needed.
+
+       backupfile: remove unnecessary use of m4/dos.m4
+       * m4/backupfile.m4 (gl_BACKUPFILE): Don't require gl_AC_DOS; none
+       of its symbols are used by the backupfile code.  backupfile.c does
+       use a symbol HAVE_DOS_FILE_NAMES, but that symbol is meant only
+       for the rare case of programs that want all their backup file
+       names to live within 8+3 limits, and dos.m4 doesn't address that.
+       * modules/backupfile (Files): Remove m4/dos.m4.
+
+2011-02-24  Jim Meyering  <meyering@redhat.com>
+
+       strstr: fix a bug whereby strstr would mistakenly return NULL
+       * lib/str-two-way.h (two_way_short_needle): Correct off-by-one error
+       in period calculation.
+       (two_way_long_needle): Likewise.
+       The original problem was reported by Mike Stump in
+       http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/7834
+       Ralf Wildenhues provided the short needle and haystack.
+       * tests/test-strstr.c: Add Ralf's test case to trigger the bug.
+       Add a more involved test to trigger the bug in two_way_long_needle.
+
+2011-02-24  Stefano Lattarini  <stefano.lattarini@gmail.com>  (tiny change)
+
+       gnulib-tool: remove use of bold display in help screen
+       * gnulib-tool (func_usage): Do not use bold display anymore in the
+       help screen.  That was just meant to be a temporary emphasis for a
+       backward-incompatible change.
+
+2011-02-23  Bruno Haible  <bruno@clisp.org>
+
+       Fix misindentation of preprocessor directives.
+       * lib/argp-namefrob.h: Reindent preprocessor directives.
+       * lib/getopt_int.h (struct _getopt_data): Likewise.
+       * lib/progreloc.c (maybe_executable, find_executable): Likewise.
+       * lib/vasnprintf.c (decode_long_double): Likewise.
+       * tests/test-argmatch.c: Insert blank lines, for clarity.
+       * tests/test-exclude.c: Likewise.
+
+2011-02-22  Bruno Haible  <bruno@clisp.org>
+
+       ioctl: Fix for MacOS X in 64-bit mode.
+       * lib/ioctl.c (rpl_ioctl): Zero-extend, not sign-extend, the request
+       value.
+       Suggested by Eric Blake.
+       Reported by Markus Gothe <nietzsche@lysator.liu.se>.
+
+2011-02-22  Jim Meyering  <meyering@redhat.com>
+
+       maint: sc_cpp_indent_check: remove the "only in lib/" restriction
+       * Makefile (sc_cpp_indent_check): Don't limit the check to files
+       in lib/.
+
+2011-02-22  Eric Blake  <eblake@redhat.com>
+
+       maint: avoid any CDPATH issue
+       * Makefile (sc_cpp_indent_check): Anchor cd argument.
+
+       maint: adjust cpp indentation for my modules, as well
+       * Makefile (sc_cpp_indent_check): Add my name.
+       * lib/fbufmode.c: Filter through cppi.
+       * lib/fpurge.c: Likewise.
+       * lib/freadable.c: Likewise.
+       * lib/freading.c: Likewise.
+       * lib/fwritable.c: Likewise.
+       * lib/fwriting.c: Likewise.
+       * lib/sigaction.c: Likewise.
+
+2011-02-22  Jim Meyering  <meyering@redhat.com>
+
+       maint: adjust cpp indentation to reflect nesting depth
+       I.e., in a block of code that begins with an unnested "#if",
+       put one space between the "#" in column 1 and following token.
+       For example,
+       -#include <sys/vfs.h>
+       +# include <sys/vfs.h>
+       Do this only in .c files that are part of a module I maintain.
+       * lib/linkat.c: Filter through cppi.
+       * lib/nanosleep.c: Likewise.
+       * lib/openat.c: Likewise.
+       * lib/openat-die.c: Likewise.
+       * lib/dup3.c: Likewise.
+       * lib/fchownat.c: Likewise.
+       * lib/flock.c: Likewise.
+       * lib/fsync.c: Likewise.
+       * lib/fts.c: Likewise.
+       * lib/getpass.c: Likewise.
+       * lib/gettimeofday.c: Likewise.
+       * lib/userspec.c: Likewise.
+       * Makefile (sc_cpp_indent_check): New rule, to check this.
+
+2011-02-22  Bruno Haible  <bruno@clisp.org>
+
+       New module 'wctomb'.
+       * lib/stdlib.in.h (wctomb): New declaration.
+       * lib/wctomb.c: New file.
+       * lib/wctomb-impl.h: New file.
+       * m4/wctomb.m4: New file.
+       * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_WCTOMB,
+       REPLACE_WCTOMB.
+       * modules/stdlib (Makefile.am): Substitute GNULIB_WCTOMB,
+       REPLACE_WCTOMB.
+       * modules/wctomb: New file.
+       * tests/test-stdlib-c++.cc: Test signature of wctomb.
+       * doc/posix-functions/wctomb.texi: Mention the new module.
+       * modules/wctob (Depends-on): Add wctomb.
+
+2011-02-22  Bruno Haible  <bruno@clisp.org>
+
+       New module 'mbtowc'.
+       * lib/stdlib.in.h (mbtowc): New declaration.
+       * lib/mbtowc.c: New file.
+       * lib/mbtowc-impl.h: New file, from libutf8 with modifications.
+       * m4/mbtowc.m4: New file.
+       * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_MBTOWC,
+       REPLACE_MBTOWC.
+       * modules/stdlib (Makefile.am): Substitute GNULIB_MBTOWC,
+       REPLACE_MBTOWC.
+       * modules/mbtowc: New file.
+       * tests/test-stdlib-c++.cc: Test signature of mbtowc.
+       * doc/posix-functions/mbtowc.texi: Mention the new module.
+       * modules/btowc (Depends-on): Add mbtowc.
+
+2011-02-22  Bruno Haible  <bruno@clisp.org>
+
+       wcrtomb: Add more tests for native Windows platforms.
+       * tests/test-wcrtomb-w32-1.sh: New file.
+       * tests/test-wcrtomb-w32-2.sh: New file.
+       * tests/test-wcrtomb-w32-3.sh: New file.
+       * tests/test-wcrtomb-w32-4.sh: New file.
+       * tests/test-wcrtomb-w32-5.sh: New file.
+       * tests/test-wcrtomb-w32.c: New file.
+       * modules/wcrtomb-tests (Files): Add them.
+       (Makefile.am): Arrange to run these tests.
+       * tests/test-wcrtomb-w32-6.sh: New file, currently unused.
+       * tests/test-wcrtomb-w32-7.sh: New file, currently unused.
+
+2011-02-20  Bruno Haible  <bruno@clisp.org>
+
+       wcrtomb: Enhance test.
+       * tests/test-wcrtomb.c (main): Add test against bug with NULL argument.
+
+2011-02-20  Bruno Haible  <bruno@clisp.org>
+
+       mbrtowc: Tiny optimization.
+       * lib/mbrtowc.c (mbrtowc): Delay pstate assignment until it is needed.
+
+2011-02-20  Jim Meyering  <meyering@redhat.com>
+
+       test-exclude.c: remove unmatched #endif
+       * tests/test-exclude.c: Remove stray #endif, left over from
+       the change of a week ago.
+
+2011-02-19  Jim Meyering  <meyering@redhat.com>
+
+       git-version-gen: skip "-dirty" check when appropriate
+       * build-aux/git-version-gen: Don't run any git commands when the
+       version string comes from .tarball-version.  Prior to this, we
+       would run git update-index --refresh even from a just-unpacked
+       tarball directory, and that could affect a .git/ directory in a
+       parent of the build directory.  Reported by Mike Frysinger.
+
+2011-02-19  Bruno Haible  <bruno@clisp.org>
+
+       unictype/property-byname: Reduce the size of the 'data' segment.
+       * lib/unictype/pr_byname.gperf: Add gperf option '%pic'.
+
+2011-02-19  Bruno Haible  <bruno@clisp.org>
+
+       unictype/scripts: Reduce the size of the 'data' segment.
+       * lib/gen-uni-tables.c (output_scripts_byname): Emit gperf option
+       '%pic'.
+       * lib/unictype/scripts_byname.gperf: Regenerated.
+
+2011-02-19  Bruno Haible  <bruno@clisp.org>
+
+       stdint: Update documentation.
+       * doc/posix-headers/stdint.texi: Mention WCHAR_MIN, WCHAR_MAX problem.
+
+2011-02-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdint: omit redundant check for wchar.h
+       * m4/stdint.m4 (gl_STDINT_H): The earlier part of this macro now
+       always tests whether wchar.h exists, so remove the now-redundant test.
+
+2011-02-18  Bruno Haible  <bruno@clisp.org>
+
+       stdint: Cut dependency to module 'wchar'.
+       * lib/stdint.in.h: Include wchar.h only when HAVE_WCHAR_H is 1. Also
+       include the necessary prerequisites.
+       * m4/stdint.m4 (gl_STDINT_H): Test whether wchar.h exists.
+       * modules/stdint (Depends-on): Remove wchar.
+       (Makefile.am): Substitute HAVE_WCHAR_H.
+       This reverts part of a 2007-01-06 commit. Reported by Paul Eggert.
+
+2011-02-18  Eric Blake  <eblake@redhat.com>
+
+       longlong: skip, rather than fail, on cross-compilation
+       * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Avoid aborting configure
+       when cross-compiling; regression from 2011-02-16.
+
+2011-02-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Mention 2011-02-08 change to stdlib.
+
+2011-02-17  Bruno Haible  <bruno@clisp.org>
+
+       getloadavg: Add comments about platforms.
+       * m4/getloadavg.m4: Add comment.
+       * lib/getloadavg.c: Likewise.
+
+2011-02-17  Bruno Haible  <bruno@clisp.org>
+
+       getloadavg: Fix link error on Solaris 2.6.
+       * modules/getloadavg (Link): New section.
+       * modules/getloadavg-tests (Makefile.am): Use GETLOADAVG_LIBS for
+       linking test-getloadavg.
+       * doc/glibc-functions/getloadavg.texi: Mention that Solaris 2.6 lacks
+       getloadavg.
+
+2011-02-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/getloadavg.c (getloadavg) [sgi]: Make ldav_off of type ptrdiff_t.
+       It was 'int', but this doesn't match the IRIX 6.5 manual.
+       Suggested by Bruno Haible in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-02/msg00207.html>.
+
+2011-02-17  Bruno Haible  <bruno@clisp.org>
+
+       havelib: Fix comments.
+       * m4/lib-link.m4 (AC_LIB_RPATH): Update comments after 2007-01-02
+       change.
+
+2011-02-17  Bruno Haible  <bruno@clisp.org>
+
+       havelib: Update config.rpath.
+       * build-aux/config.rpath: Update to match libtool.m4 from libtool-2.4.
+
+2011-02-17  Bruno Haible  <bruno@clisp.org>
+
+       getloadavg test: Add some plausibility checks.
+       * tests/test-getloadavg.c (check_avg): Print a warning when the value
+       is improbable.
+
 2011-02-16  Eric Blake  <eblake@redhat.com>
 
        maintainer-makefile: make syntax-check a no-op from tarballs