#include <dirent.h>
#include <ctype.h>
#include <stdarg.h>
+#include <assert.h>
const char *ccan_dir;
+const char *get_ccan_file_contents(struct ccan_file *f)
+{
+ if (!f->contents) {
+ f->contents = grab_file(f, f->fullname, &f->contents_size);
+ if (!f->contents)
+ err(1, "Reading file %s", f->fullname);
+ }
+ return f->contents;
+}
+
char **get_ccan_file_lines(struct ccan_file *f)
{
if (!f->lines)
- f->lines = strsplit(f, f->contents, "\n", &f->num_lines);
+ f->lines = strsplit(f, get_ccan_file_contents(f),
+ "\n", &f->num_lines);
return f->lines;
}
{
struct ccan_file *f;
+ assert(dir[0] == '/');
+
f = talloc(ctx, struct ccan_file);
f->lines = NULL;
f->line_info = NULL;
f->compiled = NULL;
f->name = talloc_steal(f, name);
f->fullname = talloc_asprintf(f, "%s/%s", dir, f->name);
+ f->contents = NULL;
+ f->cov_compiled = NULL;
return f;
}
if (streq(f->name, "_info")) {
m->info_file = f;
- f->contents = grab_file(f, f->name, &f->contents_size);
- if (!f->contents)
- err(1, "Reading file %s", f->name);
continue;
}
is_c_src = strends(f->name, ".c");
if (!is_c_src && !strends(f->name, ".h")) {
- /* We don't pull in contents of non-source files */
dest = &m->other_files;
continue;
}
- f->contents = grab_file(f, f->name, &f->contents_size);
- if (!f->contents)
- err(1, "Reading file %s", f->name);
-
if (!strchr(f->name, '/')) {
if (is_c_src)
dest = &m->c_files;
list_head_init(&m->other_test_c_files);
list_head_init(&m->other_test_files);
list_head_init(&m->other_files);
+ list_head_init(&m->examples);
+ list_head_init(&m->mangled_examples);
list_head_init(&m->dep_dirs);
- list_head_init(&m->dep_objs);
olddir = talloc_getcwd(NULL);
if (!olddir)