jacobson_karels: Add missing inline keyword

Forgot the 'inline' in 'static inline' in the functions defined in the
header, which means that lots of warnings will be generated, if you include
the header but don't use the functions.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
memmem: Trivial module to provide memmem() function

glibc includes a memmem() function which, by analogy with strstr()
searches for a byte sequence within a larger byte sequence.  The function
isn't standard, however, so other C libraries may not include it.

This adds a trivial module providing the memmem() function, if the C
library doesn't already do so.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
rfc822: Use the memmem module

This changes rfc822 to use the memmem module to supply a memmem() function
if the C library lacks it, instead of rolling our own locally.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan: Correct some poor conventions in _info includes

There are a couple of small problems with the includes used in most of
ccan's _info files.

   * _info routinely uses printf(), and so should include <stdio.h>, but
only some of them do.  We get away with it, because they do include
<string.h>, which apparently includes <stdio.h> indirectly, but we should
be explicit about it.

   * Most _info files were including config.h after the system headers.
That _seems_ sensible, but actually causes problems.  Because config.h
defines _GNU_SOURCE it can change the behaviour of the system headers.
More specifically it can make them behave differently to how the individual
module headers (which have included config.h) expects them to behave.

This patch adjusts all the existing _info files and, more importantly,
the template constructed by ccanlint.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>