#include "tools.h"
#include <ccan/str/str.h>
#include <ccan/tal/link/link.h>
+#include <ccan/tal/grab_file/grab_file.h>
#include <ccan/tal/path/path.h>
#include <ccan/hash/hash.h>
#include <ccan/htable/htable_type.h>
const char *get_ccan_file_contents(struct ccan_file *f)
{
if (!f->contents) {
- f->contents = tal_grab_file(f, f->fullname,
- &f->contents_size);
+ f->contents = grab_file(f, f->fullname);
if (!f->contents)
err(1, "Reading file %s", f->fullname);
+ f->contents_size = tal_count(f->contents) - 1;
}
return f->contents;
}
f = new_ccan_file(m, m->dir,
subdir ? path_join(m, subdir, ent->d_name)
: ent->d_name);
- if (lstat(f->fullname, &st) != 0)
- err(1, "lstat %s", f->fullname);
+ if (stat(f->fullname, &st) != 0)
+ err(1, "stat %s", f->fullname);
if (S_ISDIR(st.st_mode)) {
size_t len = tal_count(subs);
&& list_empty(&m->h_files))
errx(1, "No _info, C or H files found here!");
- for (i = 0; i < tal_count(subs); i++)
- add_files(m, base, subs[i]);
+ /* Don't enter subdirs with _info: they're separate modules. */
+ for (i = 0; i < tal_count(subs); i++) {
+ struct stat st;
+ char *subinfo = path_join(subs, base,
+ path_join(subs, subs[i],
+ "_info"));
+ if (lstat(subinfo, &st) != 0)
+ add_files(m, base, subs[i]);
+ }
}
tal_free(subs);
}