Commit 932d65dd authored by Rusty Russell's avatar Rusty Russell

ccanlint: handle nested modules when mentioned in examples.

If we see an ccan include line in an example, we add that to the
dependencies to try to build the example, but we didn't handle nested
modules.
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 6a4d4533
......@@ -48,7 +48,7 @@ static bool check_dep_includes(struct manifest *m,
char *mod;
if (!strreg(f, lines[i],
"^[ \t]*#[ \t]*include[ \t]*[<\"]"
"(ccan/+.+)/+[^/]+.h", &mod))
"(ccan/+.+)/+[^/]+\\.h", &mod))
continue;
if (has_dep(m, deps, used, mod))
......
#include <tools/ccanlint/ccanlint.h>
#include <tools/tools.h>
#include <ccan/talloc/talloc.h>
#include <ccan/str_talloc/str_talloc.h>
#include <ccan/cast/cast.h>
#include <ccan/str/str.h>
#include <sys/types.h>
......@@ -83,13 +84,10 @@ static struct manifest **get_example_deps(struct manifest *m,
/* Other modules implied by includes. */
for (lines = get_ccan_file_lines(f); *lines; lines++) {
unsigned preflen = strspn(*lines, " \t");
if (strstarts(*lines + preflen, "#include <ccan/")) {
char *modname;
modname = talloc_strdup(f, *lines + preflen
+ strlen("#include <ccan/"));
modname[strcspn(modname, "/")] = '\0';
char *modname;
if (strreg(f, *lines,
"^[ \t]*#[ \t]*include[ \t]*[<\"]"
"ccan/+(.+)/+[^/]+\\.h", &modname)) {
if (!have_mod(deps, modname))
add_dep(&deps, modname);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment