diff options
35 files changed, 685 insertions, 15 deletions
diff --git a/Makefile.in b/Makefile.in index ddd9cf8e..6adf4412 100644 --- a/Makefile.in +++ b/Makefile.in @@ -197,6 +197,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ @@ -1633,6 +1633,7 @@ m4_include([gnulib/m4/mbsrtowcs.m4]) m4_include([gnulib/m4/mbstate_t.m4]) m4_include([gnulib/m4/mbtowc.m4]) m4_include([gnulib/m4/memchr.m4]) +m4_include([gnulib/m4/memmem.m4]) m4_include([gnulib/m4/mempcpy.m4]) m4_include([gnulib/m4/memrchr.m4]) m4_include([gnulib/m4/minmax.m4]) diff --git a/config.h.in b/config.h.in index 101313e3..83c77f5a 100644 --- a/config.h.in +++ b/config.h.in @@ -245,6 +245,9 @@ /* Define to 1 when the gnulib module memchr should be tested. */ #undef GNULIB_TEST_MEMCHR +/* Define to 1 when the gnulib module memmem should be tested. */ +#undef GNULIB_TEST_MEMMEM + /* Define to 1 when the gnulib module mempcpy should be tested. */ #undef GNULIB_TEST_MEMPCPY @@ -515,6 +518,10 @@ don't. */ #undef HAVE_DECL_MBSRTOWCS +/* Define to 1 if you have the declaration of `memmem', and to 0 if you don't. + */ +#undef HAVE_DECL_MEMMEM + /* Define to 1 if you have the declaration of `memrchr', and to 0 if you don't. */ #undef HAVE_DECL_MEMRCHR @@ -793,6 +800,9 @@ /* Define to 1 if <wchar.h> declares mbstate_t. */ #undef HAVE_MBSTATE_T +/* Define to 1 if you have the `memmem' function. */ +#undef HAVE_MEMMEM + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H @@ -15673,6 +15673,8 @@ fi # Code from module mbsrtowcs: # Code from module mbtowc: # Code from module memchr: + # Code from module memmem: + # Code from module memmem-simple: # Code from module mempcpy: # Code from module memrchr: # Code from module minmax: @@ -24849,6 +24851,135 @@ $as_echo "$gl_cv_func_memchr_works" >&6; } fi + ac_fn_c_check_decl "$LINENO" "memmem" "ac_cv_have_decl_memmem" "$ac_includes_default" +if test "x$ac_cv_have_decl_memmem" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_MEMMEM $ac_have_decl +_ACEOF + + + + + + + for ac_func in memmem +do : + ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem" +if test "x$ac_cv_func_memmem" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMMEM 1 +_ACEOF + +fi +done + + if test $ac_cv_func_memmem = yes; then + HAVE_MEMMEM=1 + else + HAVE_MEMMEM=0 + fi + + : + + + + + + if test $ac_cv_have_decl_memmem = no; then + HAVE_DECL_MEMMEM=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5 +$as_echo_n "checking whether memmem works... " >&6; } +if ${gl_cv_func_memmem_works_always+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __GNU_LIBRARY__ + #include <features.h> + #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \ + || __GLIBC_MINOR__ > 12)) \ + || (__GLIBC__ > 2)) \ + || defined __UCLIBC__ + Lucky user + #endif +#elif defined __CYGWIN__ + #include <cygwin/version.h> + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#else + Lucky user +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1; then : + gl_cv_func_memmem_works_always="guessing yes" +else + gl_cv_func_memmem_works_always="guessing no" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <string.h> /* for memmem */ +#define P "_EF_BF_BD" +#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P +#define NEEDLE P P P P P + +int +main () +{ + + int result = 0; + if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE))) + result |= 1; + /* Check for empty needle behavior. */ + { + const char *haystack = "AAA"; + if (memmem (haystack, 3, NULL, 0) != haystack) + result |= 2; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_memmem_works_always=yes +else + gl_cv_func_memmem_works_always=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5 +$as_echo "$gl_cv_func_memmem_works_always" >&6; } + case "$gl_cv_func_memmem_works_always" in + *yes) ;; + *) + REPLACE_MEMMEM=1 + ;; + esac + fi + : + + ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default" if test "x$ac_cv_have_decl_memrchr" = xyes; then : ac_have_decl=1 @@ -35440,6 +35571,256 @@ $as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h + if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works in linear time" >&5 +$as_echo_n "checking whether memmem works in linear time... " >&6; } +if ${gl_cv_func_memmem_works_fast+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <features.h> +#ifdef __GNU_LIBRARY__ + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)) \ + && !defined __UCLIBC__ + Lucky user + #endif +#endif +#ifdef __CYGWIN__ + #include <cygwin/version.h> + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 0) + Lucky user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1; then : + gl_cv_func_memmem_works_fast="guessing yes" +else + gl_cv_func_memmem_works_fast="guessing no" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <signal.h> /* for signal */ +#include <string.h> /* for memmem */ +#include <stdlib.h> /* for malloc */ +#include <unistd.h> /* for alarm */ +static void quit (int sig) { exit (sig + 128); } + +int +main () +{ + + int result = 0; + size_t m = 1000000; + char *haystack = (char *) malloc (2 * m + 1); + char *needle = (char *) malloc (m + 1); + /* Failure to compile this test due to missing alarm is okay, + since all such platforms (mingw) also lack memmem. */ + signal (SIGALRM, quit); + alarm (5); + /* Check for quadratic performance. */ + if (haystack && needle) + { + memset (haystack, 'A', 2 * m); + haystack[2 * m] = 'B'; + memset (needle, 'A', m); + needle[m] = 'B'; + if (!memmem (haystack, 2 * m + 1, needle, m + 1)) + result |= 1; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_memmem_works_fast=yes +else + gl_cv_func_memmem_works_fast=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_fast" >&5 +$as_echo "$gl_cv_func_memmem_works_fast" >&6; } + case "$gl_cv_func_memmem_works_fast" in + *yes) ;; + *) + REPLACE_MEMMEM=1 + ;; + esac + fi + + if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext" + + fi + + + + + for ac_func in memmem +do : + ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem" +if test "x$ac_cv_func_memmem" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMMEM 1 +_ACEOF + +fi +done + + if test $ac_cv_func_memmem = yes; then + HAVE_MEMMEM=1 + else + HAVE_MEMMEM=0 + fi + + : + + + + + + if test $ac_cv_have_decl_memmem = no; then + HAVE_DECL_MEMMEM=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5 +$as_echo_n "checking whether memmem works... " >&6; } +if ${gl_cv_func_memmem_works_always+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __GNU_LIBRARY__ + #include <features.h> + #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \ + || __GLIBC_MINOR__ > 12)) \ + || (__GLIBC__ > 2)) \ + || defined __UCLIBC__ + Lucky user + #endif +#elif defined __CYGWIN__ + #include <cygwin/version.h> + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#else + Lucky user +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1; then : + gl_cv_func_memmem_works_always="guessing yes" +else + gl_cv_func_memmem_works_always="guessing no" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <string.h> /* for memmem */ +#define P "_EF_BF_BD" +#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P +#define NEEDLE P P P P P + +int +main () +{ + + int result = 0; + if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE))) + result |= 1; + /* Check for empty needle behavior. */ + { + const char *haystack = "AAA"; + if (memmem (haystack, 3, NULL, 0) != haystack) + result |= 2; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_memmem_works_always=yes +else + gl_cv_func_memmem_works_always=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5 +$as_echo "$gl_cv_func_memmem_works_always" >&6; } + case "$gl_cv_func_memmem_works_always" in + *yes) ;; + *) + REPLACE_MEMMEM=1 + ;; + esac + fi + : + + if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext" + + fi + + + + + + GNULIB_MEMMEM=1 + + + + + +$as_echo "#define GNULIB_TEST_MEMMEM 1" >>confdefs.h + + + + + diff --git a/docs/Makefile.in b/docs/Makefile.in index db55a3f3..4a2f3a86 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -197,6 +197,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/gnulib/lib/Makefile.am b/gnulib/lib/Makefile.am index 5f229163..e1506f4d 100644 --- a/gnulib/lib/Makefile.am +++ b/gnulib/lib/Makefile.am @@ -21,7 +21,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --po-base=gnulib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl --po-domain=man-db --no-vc-files argp canonicalize closedir dirent dirname error flock fnmatch-gnu fstat futimens getline getopt-gnu gettext gitlog-to-changelog glob gnupload idpriv-drop idpriv-droptemp lib-ignore localcharset lock minmax mkdtemp mkstemp nanosleep nonblocking openat opendir regex rename save-cwd setenv sigaction signal sigprocmask stat-time strcasestr strerror strsep timespec unsetenv utimens warnings xalloc xgetcwd xstrndup xvasprintf +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --po-base=gnulib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl --po-domain=man-db --no-vc-files argp canonicalize closedir dirent dirname error flock fnmatch-gnu fstat futimens getline getopt-gnu gettext gitlog-to-changelog glob gnupload idpriv-drop idpriv-droptemp lib-ignore localcharset lock memmem minmax mkdtemp mkstemp nanosleep nonblocking openat opendir regex rename save-cwd setenv sigaction signal sigprocmask stat-time strcasestr strerror strsep timespec unsetenv utimens warnings xalloc xgetcwd xstrndup xvasprintf AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects @@ -1036,6 +1036,15 @@ EXTRA_libgnu_la_SOURCES += memchr.c ## end gnulib module memchr +## begin gnulib module memmem-simple + + +EXTRA_DIST += memmem.c str-two-way.h + +EXTRA_libgnu_la_SOURCES += memmem.c + +## end gnulib module memmem-simple + ## begin gnulib module mempcpy diff --git a/gnulib/lib/Makefile.in b/gnulib/lib/Makefile.in index 7023d26d..93e593d3 100644 --- a/gnulib/lib/Makefile.in +++ b/gnulib/lib/Makefile.in @@ -35,7 +35,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --po-base=gnulib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl --po-domain=man-db --no-vc-files argp canonicalize closedir dirent dirname error flock fnmatch-gnu fstat futimens getline getopt-gnu gettext gitlog-to-changelog glob gnupload idpriv-drop idpriv-droptemp lib-ignore localcharset lock minmax mkdtemp mkstemp nanosleep nonblocking openat opendir regex rename save-cwd setenv sigaction signal sigprocmask stat-time strcasestr strerror strsep timespec unsetenv utimens warnings xalloc xgetcwd xstrndup xvasprintf +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --po-base=gnulib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl --po-domain=man-db --no-vc-files argp canonicalize closedir dirent dirname error flock fnmatch-gnu fstat futimens getline getopt-gnu gettext gitlog-to-changelog glob gnupload idpriv-drop idpriv-droptemp lib-ignore localcharset lock memmem minmax mkdtemp mkstemp nanosleep nonblocking openat opendir regex rename save-cwd setenv sigaction signal sigprocmask stat-time strcasestr strerror strsep timespec unsetenv utimens warnings xalloc xgetcwd xstrndup xvasprintf @@ -222,6 +222,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ @@ -1489,16 +1490,17 @@ EXTRA_DIST = alloca.c alloca.in.h areadlink.h openat-priv.h \ localeconv.c lstat.c malloc.c malloc.c malloca.h \ malloca.valgrind mbrtowc.c mbsinit.c mbsrtowcs-impl.h \ mbsrtowcs-state.c mbsrtowcs.c mbtowc-impl.h mbtowc.c memchr.c \ - memchr.valgrind mempcpy.c memrchr.c mkdtemp.c mkstemp.c \ - msvc-inval.c msvc-inval.h msvc-nothrow.c msvc-nothrow.h \ - nanosleep.c nl_langinfo.c nonblocking.h stdio-read.c \ - stdio-write.c open.c openat.c openat.h dirent-private.h \ - opendir.c pathmax.h raise.c rawmemchr.c rawmemchr.valgrind \ - dirent-private.h readdir.c readlink.c realloc.c regcomp.c \ - regex.c regex.h regex_internal.c regex_internal.h regexec.c \ - rename.c dirent-private.h rewinddir.c rmdir.c same.h \ - same-inode.h save-cwd.h secure_getenv.c select.c setenv.c \ - sig-handler.h sigaction.c signal.in.h sigprocmask.c sleep.c \ + memchr.valgrind memmem.c str-two-way.h mempcpy.c memrchr.c \ + mkdtemp.c mkstemp.c msvc-inval.c msvc-inval.h msvc-nothrow.c \ + msvc-nothrow.h nanosleep.c nl_langinfo.c nonblocking.h \ + stdio-read.c stdio-write.c open.c openat.c openat.h \ + dirent-private.h opendir.c pathmax.h raise.c rawmemchr.c \ + rawmemchr.valgrind dirent-private.h readdir.c readlink.c \ + realloc.c regcomp.c regex.c regex.h regex_internal.c \ + regex_internal.h regexec.c rename.c dirent-private.h \ + rewinddir.c rmdir.c same.h same-inode.h save-cwd.h \ + secure_getenv.c select.c setenv.c sig-handler.h sigaction.c \ + signal.in.h sigprocmask.c sleep.c \ $(top_srcdir)/build-aux/snippet/_Noreturn.h \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ $(top_srcdir)/build-aux/snippet/c++defs.h \ @@ -1583,8 +1585,8 @@ EXTRA_libgnu_la_SOURCES = alloca.c openat-proc.c btowc.c \ getdelim.c getdtablesize.c getline.c getlogin_r.c getopt.c \ getopt1.c gettimeofday.c glob.c ioctl.c localeconv.c lstat.c \ malloc.c malloc.c mbrtowc.c mbsinit.c mbsrtowcs-state.c \ - mbsrtowcs.c mbtowc.c memchr.c mempcpy.c memrchr.c mkdtemp.c \ - mkstemp.c msvc-inval.c msvc-nothrow.c nanosleep.c \ + mbsrtowcs.c mbtowc.c memchr.c memmem.c mempcpy.c memrchr.c \ + mkdtemp.c mkstemp.c msvc-inval.c msvc-nothrow.c nanosleep.c \ nl_langinfo.c stdio-read.c stdio-write.c open.c openat.c \ opendir.c raise.c rawmemchr.c readdir.c readlink.c realloc.c \ regcomp.c regex.c regex_internal.c regexec.c rename.c \ @@ -1758,6 +1760,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memmem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempcpy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memrchr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdtemp.Plo@am__quote@ diff --git a/gnulib/lib/memmem.c b/gnulib/lib/memmem.c new file mode 100644 index 00000000..dcad3321 --- /dev/null +++ b/gnulib/lib/memmem.c @@ -0,0 +1,75 @@ +/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2014 Free Software + Foundation, Inc. + This file is part of the GNU C Library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see <http://www.gnu.org/licenses/>. */ + +/* This particular implementation was written by Eric Blake, 2008. */ + +#ifndef _LIBC +# include <config.h> +#endif + +/* Specification of memmem. */ +#include <string.h> + +#ifndef _LIBC +# define __builtin_expect(expr, val) (expr) +#endif + +#define RETURN_TYPE void * +#define AVAILABLE(h, h_l, j, n_l) ((j) <= (h_l) - (n_l)) +#include "str-two-way.h" + +/* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK + if NEEDLE_LEN is 0, otherwise NULL if NEEDLE is not found in + HAYSTACK. */ +void * +memmem (const void *haystack_start, size_t haystack_len, + const void *needle_start, size_t needle_len) +{ + /* Abstract memory is considered to be an array of 'unsigned char' values, + not an array of 'char' values. See ISO C 99 section 6.2.6.1. */ + const unsigned char *haystack = (const unsigned char *) haystack_start; + const unsigned char *needle = (const unsigned char *) needle_start; + + if (needle_len == 0) + /* The first occurrence of the empty string is deemed to occur at + the beginning of the string. */ + return (void *) haystack; + + /* Sanity check, otherwise the loop might search through the whole + memory. */ + if (__builtin_expect (haystack_len < needle_len, 0)) + return NULL; + + /* Use optimizations in memchr when possible, to reduce the search + size of haystack using a linear algorithm with a smaller + coefficient. However, avoid memchr for long needles, since we + can often achieve sublinear performance. */ + if (needle_len < LONG_NEEDLE_THRESHOLD) + { + haystack = memchr (haystack, *needle, haystack_len); + if (!haystack || __builtin_expect (needle_len == 1, 0)) + return (void *) haystack; + haystack_len -= haystack - (const unsigned char *) haystack_start; + if (haystack_len < needle_len) + return NULL; + return two_way_short_needle (haystack, haystack_len, needle, needle_len); + } + else + return two_way_long_needle (haystack, haystack_len, needle, needle_len); +} + +#undef LONG_NEEDLE_THRESHOLD diff --git a/gnulib/m4/gnulib-cache.m4 b/gnulib/m4/gnulib-cache.m4 index 56ad23e6..11ce89da 100644 --- a/gnulib/m4/gnulib-cache.m4 +++ b/gnulib/m4/gnulib-cache.m4 @@ -27,7 +27,7 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --po-base=gnulib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl --po-domain=man-db --no-vc-files argp canonicalize closedir dirent dirname error flock fnmatch-gnu fstat futimens getline getopt-gnu gettext gitlog-to-changelog glob gnupload idpriv-drop idpriv-droptemp lib-ignore localcharset lock minmax mkdtemp mkstemp nanosleep nonblocking openat opendir regex rename save-cwd setenv sigaction signal sigprocmask stat-time strcasestr strerror strsep timespec unsetenv utimens warnings xalloc xgetcwd xstrndup xvasprintf +# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --po-base=gnulib/po --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl --po-domain=man-db --no-vc-files argp canonicalize closedir dirent dirname error flock fnmatch-gnu fstat futimens getline getopt-gnu gettext gitlog-to-changelog glob gnupload idpriv-drop idpriv-droptemp lib-ignore localcharset lock memmem minmax mkdtemp mkstemp nanosleep nonblocking openat opendir regex rename save-cwd setenv sigaction signal sigprocmask stat-time strcasestr strerror strsep timespec unsetenv utimens warnings xalloc xgetcwd xstrndup xvasprintf # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) @@ -53,6 +53,7 @@ gl_MODULES([ lib-ignore localcharset lock + memmem minmax mkdtemp mkstemp diff --git a/gnulib/m4/gnulib-comp.m4 b/gnulib/m4/gnulib-comp.m4 index 02acc547..2da2bd33 100644 --- a/gnulib/m4/gnulib-comp.m4 +++ b/gnulib/m4/gnulib-comp.m4 @@ -129,6 +129,8 @@ AC_DEFUN([gl_EARLY], # Code from module mbsrtowcs: # Code from module mbtowc: # Code from module memchr: + # Code from module memmem: + # Code from module memmem-simple: # Code from module mempcpy: # Code from module memrchr: # Code from module minmax: @@ -531,6 +533,15 @@ AC_SUBST([LTALLOCA]) gl_PREREQ_MEMCHR fi gl_STRING_MODULE_INDICATOR([memchr]) + gl_FUNC_MEMMEM + if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then + AC_LIBOBJ([memmem]) + fi + gl_FUNC_MEMMEM_SIMPLE + if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then + AC_LIBOBJ([memmem]) + fi + gl_STRING_MODULE_INDICATOR([memmem]) gl_FUNC_MEMPCPY if test $HAVE_MEMPCPY = 0; then AC_LIBOBJ([mempcpy]) @@ -1091,6 +1102,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/mbtowc.c lib/memchr.c lib/memchr.valgrind + lib/memmem.c lib/mempcpy.c lib/memrchr.c lib/minmax.h @@ -1319,6 +1331,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/mbstate_t.m4 m4/mbtowc.m4 m4/memchr.m4 + m4/memmem.m4 m4/mempcpy.m4 m4/memrchr.m4 m4/minmax.m4 diff --git a/gnulib/m4/memmem.m4 b/gnulib/m4/memmem.m4 new file mode 100644 index 00000000..98bb4912 --- /dev/null +++ b/gnulib/m4/memmem.m4 @@ -0,0 +1,151 @@ +# memmem.m4 serial 24 +dnl Copyright (C) 2002-2004, 2007-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Check that memmem is present and functional. +AC_DEFUN([gl_FUNC_MEMMEM_SIMPLE], +[ + dnl Persuade glibc <string.h> to declare memmem(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + AC_CHECK_FUNCS([memmem]) + if test $ac_cv_func_memmem = yes; then + HAVE_MEMMEM=1 + else + HAVE_MEMMEM=0 + fi + AC_CHECK_DECLS_ONCE([memmem]) + if test $ac_cv_have_decl_memmem = no; then + HAVE_DECL_MEMMEM=0 + else + dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092. + dnl Also check that we handle empty needles correctly. + AC_CACHE_CHECK([whether memmem works], + [gl_cv_func_memmem_works_always], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include <string.h> /* for memmem */ +#define P "_EF_BF_BD" +#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P +#define NEEDLE P P P P P +]], [[ + int result = 0; + if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE))) + result |= 1; + /* Check for empty needle behavior. */ + { + const char *haystack = "AAA"; + if (memmem (haystack, 3, NULL, 0) != haystack) + result |= 2; + } + return result; + ]])], + [gl_cv_func_memmem_works_always=yes], + [gl_cv_func_memmem_works_always=no], + [dnl glibc 2.9..2.12 and cygwin 1.7.7 have issue #12092 above. + dnl Also empty needles work on glibc >= 2.1 and cygwin >= 1.7.0. + dnl uClibc is not affected, since it uses different source code. + dnl Assume that it works on all other platforms (even if not linear). + AC_EGREP_CPP([Lucky user], + [ +#ifdef __GNU_LIBRARY__ + #include <features.h> + #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \ + || __GLIBC_MINOR__ > 12)) \ + || (__GLIBC__ > 2)) \ + || defined __UCLIBC__ + Lucky user + #endif +#elif defined __CYGWIN__ + #include <cygwin/version.h> + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#else + Lucky user +#endif + ], + [gl_cv_func_memmem_works_always="guessing yes"], + [gl_cv_func_memmem_works_always="guessing no"]) + ]) + ]) + case "$gl_cv_func_memmem_works_always" in + *yes) ;; + *) + REPLACE_MEMMEM=1 + ;; + esac + fi + gl_PREREQ_MEMMEM +]) # gl_FUNC_MEMMEM_SIMPLE + +dnl Additionally, check that memmem has linear performance characteristics +AC_DEFUN([gl_FUNC_MEMMEM], +[ + AC_REQUIRE([gl_FUNC_MEMMEM_SIMPLE]) + if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then + AC_CACHE_CHECK([whether memmem works in linear time], + [gl_cv_func_memmem_works_fast], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include <signal.h> /* for signal */ +#include <string.h> /* for memmem */ +#include <stdlib.h> /* for malloc */ +#include <unistd.h> /* for alarm */ +static void quit (int sig) { exit (sig + 128); } +]], [[ + int result = 0; + size_t m = 1000000; + char *haystack = (char *) malloc (2 * m + 1); + char *needle = (char *) malloc (m + 1); + /* Failure to compile this test due to missing alarm is okay, + since all such platforms (mingw) also lack memmem. */ + signal (SIGALRM, quit); + alarm (5); + /* Check for quadratic performance. */ + if (haystack && needle) + { + memset (haystack, 'A', 2 * m); + haystack[2 * m] = 'B'; + memset (needle, 'A', m); + needle[m] = 'B'; + if (!memmem (haystack, 2 * m + 1, needle, m + 1)) + result |= 1; + } + return result; + ]])], + [gl_cv_func_memmem_works_fast=yes], [gl_cv_func_memmem_works_fast=no], + [dnl Only glibc >= 2.9 and cygwin > 1.7.0 are known to have a + dnl memmem that works in linear time. + AC_EGREP_CPP([Lucky user], + [ +#include <features.h> +#ifdef __GNU_LIBRARY__ + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)) \ + && !defined __UCLIBC__ + Lucky user + #endif +#endif +#ifdef __CYGWIN__ + #include <cygwin/version.h> + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 0) + Lucky user + #endif +#endif + ], + [gl_cv_func_memmem_works_fast="guessing yes"], + [gl_cv_func_memmem_works_fast="guessing no"]) + ]) + ]) + case "$gl_cv_func_memmem_works_fast" in + *yes) ;; + *) + REPLACE_MEMMEM=1 + ;; + esac + fi +]) # gl_FUNC_MEMMEM + +# Prerequisites of lib/memmem.c. +AC_DEFUN([gl_PREREQ_MEMMEM], [:]) diff --git a/init/Makefile.in b/init/Makefile.in index 417f619b..f7221cf1 100644 --- a/init/Makefile.in +++ b/init/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/init/systemd/Makefile.in b/init/systemd/Makefile.in index c25751d1..0619c985 100644 --- a/init/systemd/Makefile.in +++ b/init/systemd/Makefile.in @@ -197,6 +197,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/lib/Makefile.in b/lib/Makefile.in index b5c8d6d5..e3a7c29a 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -198,6 +198,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/libdb/Makefile.in b/libdb/Makefile.in index 4d67acd1..b039ac1c 100644 --- a/libdb/Makefile.in +++ b/libdb/Makefile.in @@ -198,6 +198,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/Makefile.in b/man/Makefile.in index da39531a..ec914211 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/da/Makefile.in b/man/da/Makefile.in index b5b434da..1e319bbe 100644 --- a/man/da/Makefile.in +++ b/man/da/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/de/Makefile.in b/man/de/Makefile.in index 3460137b..6f7cf591 100644 --- a/man/de/Makefile.in +++ b/man/de/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/es/Makefile.in b/man/es/Makefile.in index d454adf3..ad0b899a 100644 --- a/man/es/Makefile.in +++ b/man/es/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/fr/Makefile.in b/man/fr/Makefile.in index 58b8a140..4c565f27 100644 --- a/man/fr/Makefile.in +++ b/man/fr/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/id/Makefile.in b/man/id/Makefile.in index 182422b7..3304a5a2 100644 --- a/man/id/Makefile.in +++ b/man/id/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/it/Makefile.in b/man/it/Makefile.in index 9729e1d8..3bf7c135 100644 --- a/man/it/Makefile.in +++ b/man/it/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/ja/Makefile.in b/man/ja/Makefile.in index 3a26a759..718a238c 100644 --- a/man/ja/Makefile.in +++ b/man/ja/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/nl/Makefile.in b/man/nl/Makefile.in index a4879063..d6103562 100644 --- a/man/nl/Makefile.in +++ b/man/nl/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/pl/Makefile.in b/man/pl/Makefile.in index 52ee2a18..96360d83 100644 --- a/man/pl/Makefile.in +++ b/man/pl/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/po4a/Makefile.in b/man/po4a/Makefile.in index fd80b3da..517db6f7 100644 --- a/man/po4a/Makefile.in +++ b/man/po4a/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/pt_BR/Makefile.in b/man/pt_BR/Makefile.in index 5b9f54b3..0efdbfa6 100644 --- a/man/pt_BR/Makefile.in +++ b/man/pt_BR/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/ru/Makefile.in b/man/ru/Makefile.in index f65ef660..346048d6 100644 --- a/man/ru/Makefile.in +++ b/man/ru/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/sr/Makefile.in b/man/sr/Makefile.in index 11996f71..6a95acb8 100644 --- a/man/sr/Makefile.in +++ b/man/sr/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/sv/Makefile.in b/man/sv/Makefile.in index 70853b11..ce8710ba 100644 --- a/man/sv/Makefile.in +++ b/man/sv/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/man/zh_CN/Makefile.in b/man/zh_CN/Makefile.in index 7238c435..1f7db07b 100644 --- a/man/zh_CN/Makefile.in +++ b/man/zh_CN/Makefile.in @@ -196,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/manual/Makefile.in b/manual/Makefile.in index 97fc2cb3..c8258301 100644 --- a/manual/Makefile.in +++ b/manual/Makefile.in @@ -197,6 +197,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/src/Makefile.in b/src/Makefile.in index e9c5a8d4..3b6eea6a 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -203,6 +203,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in index 32a149ad..82510e31 100644 --- a/src/tests/Makefile.in +++ b/src/tests/Makefile.in @@ -197,6 +197,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ diff --git a/tools/Makefile.in b/tools/Makefile.in index d7567f8c..51d85980 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -198,6 +198,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \ $(top_srcdir)/gnulib/m4/mbstate_t.m4 \ $(top_srcdir)/gnulib/m4/mbtowc.m4 \ $(top_srcdir)/gnulib/m4/memchr.m4 \ + $(top_srcdir)/gnulib/m4/memmem.m4 \ $(top_srcdir)/gnulib/m4/mempcpy.m4 \ $(top_srcdir)/gnulib/m4/memrchr.m4 \ $(top_srcdir)/gnulib/m4/minmax.m4 \ |