X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Ffile_analysis.c;h=663748e5f5ff983481d1681b13c622eb3b8d42dd;hp=1341e57b11d3230780704ead95a0e123deb10042;hb=7beaa3448fa8e6015798c1609f33d96e8986063d;hpb=650c775ff00cccd03fc84e7789a03c51d9839004 diff --git a/tools/ccanlint/file_analysis.c b/tools/ccanlint/file_analysis.c index 1341e57b..663748e5 100644 --- a/tools/ccanlint/file_analysis.c +++ b/tools/ccanlint/file_analysis.c @@ -1,8 +1,9 @@ #include "ccanlint.h" -#include "get_file_lines.h" -#include -#include -#include +#include +#include +#include +#include +#include #include #include #include @@ -13,11 +14,24 @@ char **get_ccan_file_lines(struct ccan_file *f) { - if (!f->lines) - f->lines = get_file_lines(f, f->name, &f->num_lines); + if (!f->lines) { + char *buffer = grab_file(f, f->name, NULL); + if (!buffer) + err(1, "Getting file %s", f->name); + f->lines = strsplit(f, buffer, "\n", &f->num_lines); + } return f->lines; } +struct list_head *get_ccan_file_docs(struct ccan_file *f) +{ + if (!f->doc_sections) { + get_ccan_file_lines(f); + f->doc_sections = extract_doc_sections(f->lines, f->num_lines); + } + return f->doc_sections; +} + static void add_files(struct manifest *m, const char *dir) { DIR *d; @@ -41,6 +55,7 @@ static void add_files(struct manifest *m, const char *dir) f = talloc(m, struct ccan_file); f->lines = NULL; + f->doc_sections = NULL; f->name = talloc_asprintf(f, "%s%s", dir, ent->d_name); if (lstat(f->name, &st) != 0) err(1, "lstat %s", f->name);