memmem(), which searches for one bytestring in a longer
bytestring is one of those functions that should be standard, but
isn't. This patch adds a ccan configurator test for the function
so that modules can use or replace it as necessary.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
#define HAVE_FLEXIBLE_ARRAY_MEMBER 1
#define HAVE_GETPAGESIZE 1
#define HAVE_LITTLE_ENDIAN 1
#define HAVE_FLEXIBLE_ARRAY_MEMBER 1
#define HAVE_GETPAGESIZE 1
#define HAVE_LITTLE_ENDIAN 1
#define HAVE_MMAP 1
#define HAVE_NESTED_FUNCTIONS 1
#define HAVE_STACK_GROWS_UPWARDS 0
#define HAVE_MMAP 1
#define HAVE_NESTED_FUNCTIONS 1
#define HAVE_STACK_GROWS_UPWARDS 0
"union { int i; char c[sizeof(int)]; } u;\n"
"u.i = 0x01020304;\n"
"return u.c[0] == 0x04 && u.c[1] == 0x03 && u.c[2] == 0x02 && u.c[3] == 0x01 ? 0 : 1;" },
"union { int i; char c[sizeof(int)]; } u;\n"
"u.i = 0x01020304;\n"
"return u.c[0] == 0x04 && u.c[1] == 0x03 && u.c[2] == 0x02 && u.c[3] == 0x01 ? 0 : 1;" },
+ { "HAVE_MEMMEM", DEFINES_FUNC, NULL,
+ "#define _GNU_SOURCE\n"
+ "#include <string.h>\n"
+ "static void *func(void *h, size_t hl, void *n, size_t nl) {\n"
+ "return memmem(h, hl, n, nl);"
+ "}\n", },
{ "HAVE_MMAP", DEFINES_FUNC, NULL,
"#include <sys/mman.h>\n"
"static void *func(int fd) {\n"
{ "HAVE_MMAP", DEFINES_FUNC, NULL,
"#include <sys/mman.h>\n"
"static void *func(int fd) {\n"