summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2014-06-16 00:09:09 +1000
committerRusty Russell <rusty@rustcorp.com.au>2014-06-16 21:12:44 +0930
commit291237b4fed863be74051274ac5ad9920cb33cc3 (patch)
treecc2186c3a568f44c5bc42aeed93db91c2b27273f
parent9a483e66096528915f59d875931a48eab523ca82 (diff)
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>
-rw-r--r--ccan/alignof/_info2
-rw-r--r--ccan/antithread/_info2
-rw-r--r--ccan/antithread/alloc/_info2
-rw-r--r--ccan/argcheck/_info2
-rw-r--r--ccan/array_size/_info2
-rw-r--r--ccan/asearch/_info2
-rw-r--r--ccan/asort/_info1
-rw-r--r--ccan/asprintf/_info3
-rw-r--r--ccan/autodata/_info3
-rw-r--r--ccan/avl/_info3
-rw-r--r--ccan/bdelta/_info3
-rw-r--r--ccan/bitmap/_info3
-rw-r--r--ccan/block_pool/_info2
-rw-r--r--ccan/breakpoint/_info3
-rw-r--r--ccan/btree/_info3
-rw-r--r--ccan/build_assert/_info2
-rw-r--r--ccan/bytestring/_info1
-rw-r--r--ccan/cast/_info3
-rw-r--r--ccan/ccan_tokenizer/_info2
-rw-r--r--ccan/charset/_info2
-rw-r--r--ccan/check_type/_info2
-rw-r--r--ccan/ciniparser/_info2
-rw-r--r--ccan/compiler/_info2
-rw-r--r--ccan/container_of/_info2
-rw-r--r--ccan/cpuid/_info4
-rw-r--r--ccan/crc/_info1
-rw-r--r--ccan/crcsync/_info2
-rw-r--r--ccan/daemon_with_notify/_info2
-rw-r--r--ccan/daemonize/_info2
-rw-r--r--ccan/darray/_info3
-rw-r--r--ccan/dgraph/_info1
-rw-r--r--ccan/endian/_info2
-rw-r--r--ccan/err/_info2
-rw-r--r--ccan/failtest/_info2
-rw-r--r--ccan/grab_file/_info2
-rw-r--r--ccan/hash/_info1
-rw-r--r--ccan/heap/_info3
-rw-r--r--ccan/htable/_info1
-rw-r--r--ccan/idtree/_info2
-rw-r--r--ccan/ilog/_info2
-rw-r--r--ccan/io/_info2
-rw-r--r--ccan/isaac/_info2
-rw-r--r--ccan/iscsi/_info1
-rw-r--r--ccan/jacobson_karels/_info3
-rw-r--r--ccan/jmap/_info2
-rw-r--r--ccan/jset/_info2
-rw-r--r--ccan/json/_info3
-rw-r--r--ccan/lbalance/_info1
-rw-r--r--ccan/likely/_info2
-rw-r--r--ccan/list/_info2
-rw-r--r--ccan/md4/_info2
-rw-r--r--ccan/minmax/_info3
-rw-r--r--ccan/net/_info3
-rw-r--r--ccan/nfs/_info1
-rw-r--r--ccan/noerr/_info2
-rw-r--r--ccan/objset/_info3
-rw-r--r--ccan/ogg_to_pcm/_info2
-rw-r--r--ccan/opt/_info2
-rw-r--r--ccan/ptr_valid/_info3
-rw-r--r--ccan/rbtree/_info1
-rw-r--r--ccan/rbuf/_info3
-rw-r--r--ccan/read_write_all/_info2
-rw-r--r--ccan/short_types/_info2
-rw-r--r--ccan/siphash/_info2
-rw-r--r--ccan/sparse_bsearch/_info2
-rw-r--r--ccan/str/_info2
-rw-r--r--ccan/stringmap/_info2
-rw-r--r--ccan/strmap/_info3
-rw-r--r--ccan/strset/_info3
-rw-r--r--ccan/take/_info3
-rw-r--r--ccan/tal/_info2
-rw-r--r--ccan/tal/grab_file/_info2
-rw-r--r--ccan/tal/link/_info2
-rw-r--r--ccan/tal/path/_info3
-rw-r--r--ccan/tal/str/_info2
-rw-r--r--ccan/tal/talloc/_info2
-rw-r--r--ccan/talloc/_info2
-rw-r--r--ccan/tally/_info2
-rw-r--r--ccan/tap/_info2
-rw-r--r--ccan/tcon/_info1
-rw-r--r--ccan/time/_info3
-rw-r--r--ccan/timer/_info3
-rw-r--r--ccan/tlist/_info2
-rw-r--r--ccan/ttxml/_info3
-rw-r--r--ccan/typesafe_cb/_info2
-rw-r--r--ccan/version/_info3
-rw-r--r--ccan/wwviaudio/_info2
-rw-r--r--tools/ccanlint/tests/info_exists.c3
88 files changed, 118 insertions, 75 deletions
diff --git a/ccan/alignof/_info b/ccan/alignof/_info
index 7eca1f2d..e0952c65 100644
--- a/ccan/alignof/_info
+++ b/ccan/alignof/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* alignof - ALIGNOF() macro to determine alignment of a type.
diff --git a/ccan/antithread/_info b/ccan/antithread/_info
index ba6de000..7bde2018 100644
--- a/ccan/antithread/_info
+++ b/ccan/antithread/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* antithread - Accelerated Native Technology Implementation of "threads"
diff --git a/ccan/antithread/alloc/_info b/ccan/antithread/alloc/_info
index 5ad18002..bf4756ed 100644
--- a/ccan/antithread/alloc/_info
+++ b/ccan/antithread/alloc/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* antithread/alloc - memory allocator routines
diff --git a/ccan/argcheck/_info b/ccan/argcheck/_info
index 620ff838..f8b37c2f 100644
--- a/ccan/argcheck/_info
+++ b/ccan/argcheck/_info
@@ -1,4 +1,6 @@
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* argcheck - macros to check arguments at runtime
diff --git a/ccan/array_size/_info b/ccan/array_size/_info
index d670042d..b8a9a850 100644
--- a/ccan/array_size/_info
+++ b/ccan/array_size/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* array_size - routine for safely deriving the size of a visible array.
diff --git a/ccan/asearch/_info b/ccan/asearch/_info
index 35282c4f..fae6e4aa 100644
--- a/ccan/asearch/_info
+++ b/ccan/asearch/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* asearch - typesafe binary search (bsearch)
diff --git a/ccan/asort/_info b/ccan/asort/_info
index 2d3e66e8..57523cc9 100644
--- a/ccan/asort/_info
+++ b/ccan/asort/_info
@@ -1,3 +1,4 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
diff --git a/ccan/asprintf/_info b/ccan/asprintf/_info
index 1aa5d34f..f72d668c 100644
--- a/ccan/asprintf/_info
+++ b/ccan/asprintf/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* asprintf - asprintf wrapper (and if necessary, implementation).
diff --git a/ccan/autodata/_info b/ccan/autodata/_info
index c9cf2663..a101276d 100644
--- a/ccan/autodata/_info
+++ b/ccan/autodata/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* autodata - stash pointers in your binary for automatic registration
diff --git a/ccan/avl/_info b/ccan/avl/_info
index 94b3d2eb..83893ddb 100644
--- a/ccan/avl/_info
+++ b/ccan/avl/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* avl - Key-value dictionary based on AVL trees
diff --git a/ccan/bdelta/_info b/ccan/bdelta/_info
index 8b1135ad..75d6556f 100644
--- a/ccan/bdelta/_info
+++ b/ccan/bdelta/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* bdelta - Generate and apply binary deltas
diff --git a/ccan/bitmap/_info b/ccan/bitmap/_info
index 2038058f..b8d297d1 100644
--- a/ccan/bitmap/_info
+++ b/ccan/bitmap/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* bitmap - bitmap handling
diff --git a/ccan/block_pool/_info b/ccan/block_pool/_info
index d89da5bd..a42cdba4 100644
--- a/ccan/block_pool/_info
+++ b/ccan/block_pool/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* block_pool - An efficient allocator for blocks that don't need to be resized or freed.
diff --git a/ccan/breakpoint/_info b/ccan/breakpoint/_info
index 5f5251e6..272ee25d 100644
--- a/ccan/breakpoint/_info
+++ b/ccan/breakpoint/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* breakpoint - break if the program is run under gdb.
diff --git a/ccan/btree/_info b/ccan/btree/_info
index e5f23131..7a69ed91 100644
--- a/ccan/btree/_info
+++ b/ccan/btree/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* btree - Efficient sorted associative container based on B-trees.
diff --git a/ccan/build_assert/_info b/ccan/build_assert/_info
index bce92b7e..97ebe6c9 100644
--- a/ccan/build_assert/_info
+++ b/ccan/build_assert/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* build_assert - routines for build-time assertions
diff --git a/ccan/bytestring/_info b/ccan/bytestring/_info
index 5b084916..32de954f 100644
--- a/ccan/bytestring/_info
+++ b/ccan/bytestring/_info
@@ -1,3 +1,4 @@
+#include <stdio.h>
#include <string.h>
#include "config.h"
diff --git a/ccan/cast/_info b/ccan/cast/_info
index d66e7091..f5cd37fc 100644
--- a/ccan/cast/_info
+++ b/ccan/cast/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* cast - routines for safer casting.
diff --git a/ccan/ccan_tokenizer/_info b/ccan/ccan_tokenizer/_info
index ad01ceae..aef90fb9 100644
--- a/ccan/ccan_tokenizer/_info
+++ b/ccan/ccan_tokenizer/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <string.h>
#include <stdio.h>
-#include "config.h"
/**
* ccan_tokenizer - A full-text lexer for C source files
diff --git a/ccan/charset/_info b/ccan/charset/_info
index e07d7040..aa0193d7 100644
--- a/ccan/charset/_info
+++ b/ccan/charset/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* charset - character set conversion and validation routines
diff --git a/ccan/check_type/_info b/ccan/check_type/_info
index cb19e202..cc426734 100644
--- a/ccan/check_type/_info
+++ b/ccan/check_type/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* check_type - routines for compile time type checking
diff --git a/ccan/ciniparser/_info b/ccan/ciniparser/_info
index c252257e..749a4558 100644
--- a/ccan/ciniparser/_info
+++ b/ccan/ciniparser/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* ciniparser - easily parse and manipulate ini style configuration files
diff --git a/ccan/compiler/_info b/ccan/compiler/_info
index fc9318f6..d60dff4d 100644
--- a/ccan/compiler/_info
+++ b/ccan/compiler/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <string.h>
#include <stdio.h>
-#include "config.h"
/**
* compiler - macros for common compiler extensions
diff --git a/ccan/container_of/_info b/ccan/container_of/_info
index 77b3bd15..d50094bc 100644
--- a/ccan/container_of/_info
+++ b/ccan/container_of/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* container_of - routine for upcasting
diff --git a/ccan/cpuid/_info b/ccan/cpuid/_info
index 79a98c0a..5699a2cc 100644
--- a/ccan/cpuid/_info
+++ b/ccan/cpuid/_info
@@ -1,3 +1,7 @@
+#include "config.h"
+#include <stdio.h>
+#include <string.h>
+
#include "cpuid.h"
/**
diff --git a/ccan/crc/_info b/ccan/crc/_info
index 3511b8e2..c59d58ec 100644
--- a/ccan/crc/_info
+++ b/ccan/crc/_info
@@ -1,3 +1,4 @@
+#include "config.h"
#include <string.h>
#include <stdio.h>
diff --git a/ccan/crcsync/_info b/ccan/crcsync/_info
index e6d51784..9ebb8bd8 100644
--- a/ccan/crcsync/_info
+++ b/ccan/crcsync/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* crcsync - routines to use crc for an rsync-like protocol.
diff --git a/ccan/daemon_with_notify/_info b/ccan/daemon_with_notify/_info
index be72b918..cb53a3e6 100644
--- a/ccan/daemon_with_notify/_info
+++ b/ccan/daemon_with_notify/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* daemon_with_notify - daemonize a process, can wait for child to signal readiness
diff --git a/ccan/daemonize/_info b/ccan/daemonize/_info
index f0e55bcb..0c4bc980 100644
--- a/ccan/daemonize/_info
+++ b/ccan/daemonize/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* daemonize - routine to turn a process into a well-behaved daemon.
diff --git a/ccan/darray/_info b/ccan/darray/_info
index 8be9a780..b6d5e4ba 100644
--- a/ccan/darray/_info
+++ b/ccan/darray/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
#include "ccan/darray/darray.h"
diff --git a/ccan/dgraph/_info b/ccan/dgraph/_info
index 10c82963..81a75a77 100644
--- a/ccan/dgraph/_info
+++ b/ccan/dgraph/_info
@@ -1,4 +1,5 @@
#include "config.h"
+#include <stdio.h>
#include <string.h>
/**
diff --git a/ccan/endian/_info b/ccan/endian/_info
index a71b9ae7..efe5a8bb 100644
--- a/ccan/endian/_info
+++ b/ccan/endian/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* endian - endian conversion macros for simple types
diff --git a/ccan/err/_info b/ccan/err/_info
index 64cc2cef..2af20663 100644
--- a/ccan/err/_info
+++ b/ccan/err/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* err - err(), errx(), warn() and warnx(), as per BSD's err.h.
diff --git a/ccan/failtest/_info b/ccan/failtest/_info
index ca2b60ea..87569f91 100644
--- a/ccan/failtest/_info
+++ b/ccan/failtest/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* failtest - unit test helpers for testing malloc and other failures.
diff --git a/ccan/grab_file/_info b/ccan/grab_file/_info
index 1db4c295..2508a2ee 100644
--- a/ccan/grab_file/_info
+++ b/ccan/grab_file/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* grab_file - file helper routines
diff --git a/ccan/hash/_info b/ccan/hash/_info
index d9754527..bbb3685b 100644
--- a/ccan/hash/_info
+++ b/ccan/hash/_info
@@ -1,3 +1,4 @@
+#include "config.h"
#include <string.h>
#include <stdio.h>
diff --git a/ccan/heap/_info b/ccan/heap/_info
index 552b139e..fe5866d0 100644
--- a/ccan/heap/_info
+++ b/ccan/heap/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* heap - a simple heap implementation
diff --git a/ccan/htable/_info b/ccan/htable/_info
index 1553da2b..7e06c386 100644
--- a/ccan/htable/_info
+++ b/ccan/htable/_info
@@ -1,3 +1,4 @@
+#include "config.h"
#include <string.h>
#include <stdio.h>
diff --git a/ccan/idtree/_info b/ccan/idtree/_info
index 664e7cf7..cc0c09e6 100644
--- a/ccan/idtree/_info
+++ b/ccan/idtree/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* idtree - id allocation tree
diff --git a/ccan/ilog/_info b/ccan/ilog/_info
index d57c05d4..f1f3f2d5 100644
--- a/ccan/ilog/_info
+++ b/ccan/ilog/_info
@@ -35,9 +35,9 @@
* License: CC0 (Public domain)
* Author: Timothy B. Terriberry <tterribe@xiph.org>
*/
+#include "config.h"
#include <string.h>
#include <stdio.h>
-#include "config.h"
int main(int _argc,const char *_argv[]){
/*Expect exactly one argument.*/
diff --git a/ccan/io/_info b/ccan/io/_info
index 8f5c2adc..0ba46a63 100644
--- a/ccan/io/_info
+++ b/ccan/io/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* io - simple library for asynchronous io handling.
diff --git a/ccan/isaac/_info b/ccan/isaac/_info
index 81c6ff23..c0e25eea 100644
--- a/ccan/isaac/_info
+++ b/ccan/isaac/_info
@@ -104,9 +104,9 @@
* // We actually depend on the LGPL ilog routines, so not PD :(
* license_depends_compat FAIL
*/
+#include "config.h"
#include <string.h>
#include <stdio.h>
-#include "config.h"
int main(int _argc,const char *_argv[]){
/*Expect exactly one argument.*/
diff --git a/ccan/iscsi/_info b/ccan/iscsi/_info
index f75f2c25..52577036 100644
--- a/ccan/iscsi/_info
+++ b/ccan/iscsi/_info
@@ -1,3 +1,4 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
diff --git a/ccan/jacobson_karels/_info b/ccan/jacobson_karels/_info
index 91654703..a066f469 100644
--- a/ccan/jacobson_karels/_info
+++ b/ccan/jacobson_karels/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* jacobson_karels - Jacobson/Karels Round Trip Time algorithm
diff --git a/ccan/jmap/_info b/ccan/jmap/_info
index 966a51a4..739e60af 100644
--- a/ccan/jmap/_info
+++ b/ccan/jmap/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* jmap - map from indices to values (based on libJudy)
diff --git a/ccan/jset/_info b/ccan/jset/_info
index 6ff928f1..b6759ec5 100644
--- a/ccan/jset/_info
+++ b/ccan/jset/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* jset - set of pointers (based on libJudy)
diff --git a/ccan/json/_info b/ccan/json/_info
index 0544cf5b..3113b63e 100644
--- a/ccan/json/_info
+++ b/ccan/json/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* json - Parse and generate JSON (JavaScript Object Notation)
diff --git a/ccan/lbalance/_info b/ccan/lbalance/_info
index 2121ed2b..7524e54c 100644
--- a/ccan/lbalance/_info
+++ b/ccan/lbalance/_info
@@ -1,5 +1,6 @@
/* Licensed under GPLv3+ - see LICENSE file for details */
#include "config.h"
+#include <stdio.h>
#include <string.h>
/**
diff --git a/ccan/likely/_info b/ccan/likely/_info
index b6885ef1..095ed2f7 100644
--- a/ccan/likely/_info
+++ b/ccan/likely/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <string.h>
#include <stdio.h>
-#include "config.h"
/**
* likely - macros for annotating likely/unlikely branches in the code
diff --git a/ccan/list/_info b/ccan/list/_info
index 75e3837c..60790a99 100644
--- a/ccan/list/_info
+++ b/ccan/list/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* list - double linked list routines
diff --git a/ccan/md4/_info b/ccan/md4/_info
index 6c6f9d81..4ccdddf9 100644
--- a/ccan/md4/_info
+++ b/ccan/md4/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* md4 - MD4 Message Digest Algorithm (RFC1320).
diff --git a/ccan/minmax/_info b/ccan/minmax/_info
index 1490ba43..4d95336a 100644
--- a/ccan/minmax/_info
+++ b/ccan/minmax/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* minmax - typesafe minimum and maximum functions
diff --git a/ccan/net/_info b/ccan/net/_info
index b4b219fd..5ac83f95 100644
--- a/ccan/net/_info
+++ b/ccan/net/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* net - simple IPv4/IPv6 socket library
diff --git a/ccan/nfs/_info b/ccan/nfs/_info
index 412c8dd5..0efc0479 100644
--- a/ccan/nfs/_info
+++ b/ccan/nfs/_info
@@ -1,3 +1,4 @@
+#include "config.h"
#include <string.h>
#include <stdio.h>
diff --git a/ccan/noerr/_info b/ccan/noerr/_info
index ebc407d8..082c71e6 100644
--- a/ccan/noerr/_info
+++ b/ccan/noerr/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* noerr - routines for cleaning up without blatting errno
diff --git a/ccan/objset/_info b/ccan/objset/_info
index cf290289..5831f584 100644
--- a/ccan/objset/_info
+++ b/ccan/objset/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* objset - unordered set of pointers.
diff --git a/ccan/ogg_to_pcm/_info b/ccan/ogg_to_pcm/_info
index c987b22b..d48a5f9d 100644
--- a/ccan/ogg_to_pcm/_info
+++ b/ccan/ogg_to_pcm/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* ogg_to_pcm - decode ogg vorbis audio files to PCM data using libvorbis
diff --git a/ccan/opt/_info b/ccan/opt/_info
index 9d47c48f..10396206 100644
--- a/ccan/opt/_info
+++ b/ccan/opt/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* opt - simple command line parsing
diff --git a/ccan/ptr_valid/_info b/ccan/ptr_valid/_info
index b577535f..91c9abd3 100644
--- a/ccan/ptr_valid/_info
+++ b/ccan/ptr_valid/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* ptr_valid - test whether a pointer is safe to dereference.
diff --git a/ccan/rbtree/_info b/ccan/rbtree/_info
index 58afa05d..7d314a0a 100644
--- a/ccan/rbtree/_info
+++ b/ccan/rbtree/_info
@@ -1,3 +1,4 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
diff --git a/ccan/rbuf/_info b/ccan/rbuf/_info
index 30232db2..7c9224d0 100644
--- a/ccan/rbuf/_info
+++ b/ccan/rbuf/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* rbuf - buffered I/O input primitive.
diff --git a/ccan/read_write_all/_info b/ccan/read_write_all/_info
index d70cbd1d..20c5e845 100644
--- a/ccan/read_write_all/_info
+++ b/ccan/read_write_all/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* read_write_all - read_all and write_all routines.
diff --git a/ccan/short_types/_info b/ccan/short_types/_info
index f324e359..909e4e3a 100644
--- a/ccan/short_types/_info
+++ b/ccan/short_types/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* short_types - shorter names for standard integer types
diff --git a/ccan/siphash/_info b/ccan/siphash/_info
index e6d518aa..d42ddab4 100644
--- a/ccan/siphash/_info
+++ b/ccan/siphash/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* siphash - a keyed hash function
diff --git a/ccan/sparse_bsearch/_info b/ccan/sparse_bsearch/_info
index a2b77c10..eb1e735a 100644
--- a/ccan/sparse_bsearch/_info
+++ b/ccan/sparse_bsearch/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <string.h>
#include <stdio.h>
-#include "config.h"
/**
* sparse_bsearch - search a sorted array with some invalid entries
diff --git a/ccan/str/_info b/ccan/str/_info
index 548f059d..251d999a 100644
--- a/ccan/str/_info
+++ b/ccan/str/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* str - string helper routines
diff --git a/ccan/stringmap/_info b/ccan/stringmap/_info
index 49eff19c..1f6465b6 100644
--- a/ccan/stringmap/_info
+++ b/ccan/stringmap/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* stringmap - Macros for mapping strings to things
diff --git a/ccan/strmap/_info b/ccan/strmap/_info
index 6d03b0ca..33176b30 100644
--- a/ccan/strmap/_info
+++ b/ccan/strmap/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* strmap - an ordered map of strings to values
diff --git a/ccan/strset/_info b/ccan/strset/_info
index 4984959c..3f4f7733 100644
--- a/ccan/strset/_info
+++ b/ccan/strset/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* strset - an ordered set of strings
diff --git a/ccan/take/_info b/ccan/take/_info
index 34b08861..a3ac5392 100644
--- a/ccan/take/_info
+++ b/ccan/take/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* take - routines to mark pointers to be consumed by called functions.
diff --git a/ccan/tal/_info b/ccan/tal/_info
index 0d75f56e..890cb2e7 100644
--- a/ccan/tal/_info
+++ b/ccan/tal/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* tal - compact tree allocator routines (inspired by talloc)
diff --git a/ccan/tal/grab_file/_info b/ccan/tal/grab_file/_info
index 3b323d33..68ad089b 100644
--- a/ccan/tal/grab_file/_info
+++ b/ccan/tal/grab_file/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* tal/grab_file - file helper routines
diff --git a/ccan/tal/link/_info b/ccan/tal/link/_info
index d128e010..6962cb45 100644
--- a/ccan/tal/link/_info
+++ b/ccan/tal/link/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* tal/link - link helper for tal
diff --git a/ccan/tal/path/_info b/ccan/tal/path/_info
index 24b9e468..22fcbcc8 100644
--- a/ccan/tal/path/_info
+++ b/ccan/tal/path/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* tal/path - routines to manipulate paths
diff --git a/ccan/tal/str/_info b/ccan/tal/str/_info
index 381dd98b..6fd94dc5 100644
--- a/ccan/tal/str/_info
+++ b/ccan/tal/str/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* tal/str - string helper routines which use tal
diff --git a/ccan/tal/talloc/_info b/ccan/tal/talloc/_info
index 9b1544d0..00241aa6 100644
--- a/ccan/tal/talloc/_info
+++ b/ccan/tal/talloc/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* tal/talloc - an implementation of the tal interface in terms of talloc.
diff --git a/ccan/talloc/_info b/ccan/talloc/_info
index 0ae45e73..182299ea 100644
--- a/ccan/talloc/_info
+++ b/ccan/talloc/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* talloc - tree allocator routines
diff --git a/ccan/tally/_info b/ccan/tally/_info
index 6dab9b7d..c75897c6 100644
--- a/ccan/tally/_info
+++ b/ccan/tally/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* tally - running tally of integers
diff --git a/ccan/tap/_info b/ccan/tap/_info
index baea996a..2b116de9 100644
--- a/ccan/tap/_info
+++ b/ccan/tap/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* tap - Test Anything Protocol
diff --git a/ccan/tcon/_info b/ccan/tcon/_info
index 895da9e1..c07e41ed 100644
--- a/ccan/tcon/_info
+++ b/ccan/tcon/_info
@@ -1,4 +1,5 @@
#include "config.h"
+#include <stdio.h>
#include <string.h>
/**
diff --git a/ccan/time/_info b/ccan/time/_info
index 5cf20f79..ae410a7a 100644
--- a/ccan/time/_info
+++ b/ccan/time/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* time - routines for dealing with time
diff --git a/ccan/timer/_info b/ccan/timer/_info
index 580b115c..4c58d9e5 100644
--- a/ccan/timer/_info
+++ b/ccan/timer/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* timer - efficient implementation of rarely-expiring timers.
diff --git a/ccan/tlist/_info b/ccan/tlist/_info
index e18e2efb..e6b16ef0 100644
--- a/ccan/tlist/_info
+++ b/ccan/tlist/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* tlist - typesafe double linked list routines
diff --git a/ccan/ttxml/_info b/ccan/ttxml/_info
index 3ec45207..266a7340 100644
--- a/ccan/ttxml/_info
+++ b/ccan/ttxml/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* ttxml - tiny XML library for parsing (trusted!) XML documents.
diff --git a/ccan/typesafe_cb/_info b/ccan/typesafe_cb/_info
index 4485aec5..165852a3 100644
--- a/ccan/typesafe_cb/_info
+++ b/ccan/typesafe_cb/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* typesafe_cb - macros for safe callbacks.
diff --git a/ccan/version/_info b/ccan/version/_info
index 3aad1e8a..ccdcbdbd 100644
--- a/ccan/version/_info
+++ b/ccan/version/_info
@@ -1,5 +1,6 @@
-#include <string.h>
#include "config.h"
+#include <stdio.h>
+#include <string.h>
/**
* version - helper functions for major.minor-style version numbers
diff --git a/ccan/wwviaudio/_info b/ccan/wwviaudio/_info
index ba92f8f9..5fb6beb9 100644
--- a/ccan/wwviaudio/_info
+++ b/ccan/wwviaudio/_info
@@ -1,6 +1,6 @@
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "config.h"
/**
* wwviaudio - realtime playback and mixing of 16 bit signed PCM audio data.
diff --git a/tools/ccanlint/tests/info_exists.c b/tools/ccanlint/tests/info_exists.c
index 86101aa9..9f6f2066 100644
--- a/tools/ccanlint/tests/info_exists.c
+++ b/tools/ccanlint/tests/info_exists.c
@@ -31,8 +31,9 @@ static void check_has_info(struct manifest *m,
}
static const char template[] =
- "#include <string.h>\n"
"#include \"config.h\"\n"
+ "#include <stdio.h>\n"
+ "#include <string.h>\n"
"\n"
"/**\n"
" * %s - YOUR-ONE-LINE-DESCRIPTION-HERE\n"