From eca104468958afaa893b76d9b3545cd554563538 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 10 Jun 2014 13:06:16 +0930 Subject: [PATCH] tools: use tal/grab_file Signed-off-by: Rusty Russell --- tools/Makefile | 1 + tools/ccanlint/Makefile | 1 + .../tests/info_documentation_exists.c | 3 ++- tools/ccanlint/tests/tests_coverage.c | 3 ++- tools/ccanlint/tests/tests_pass_valgrind.c | 3 ++- tools/depends.c | 8 +++--- tools/doc_extract.c | 3 ++- tools/manifest.c | 5 ++-- tools/namespacize.c | 7 ++--- tools/read_config_header.c | 3 ++- tools/tools.c | 26 +++---------------- tools/tools.h | 1 - 12 files changed, 26 insertions(+), 38 deletions(-) diff --git a/tools/Makefile b/tools/Makefile index 1ab69c92..ddd6545f 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -10,6 +10,7 @@ DEP_OBJS = ccan/err/err.o \ ccan/str/str.o \ ccan/take/take.o \ ccan/tal/tal.o \ + ccan/tal/grab_file/grab_file.o \ ccan/tal/link/link.o \ ccan/tal/path/path.o \ ccan/tal/str/str.o \ diff --git a/tools/ccanlint/Makefile b/tools/ccanlint/Makefile index f09835a4..691f2708 100644 --- a/tools/ccanlint/Makefile +++ b/tools/ccanlint/Makefile @@ -23,6 +23,7 @@ CORE_OBJS := \ ccan/strmap/strmap.o \ ccan/take/take.o \ ccan/tal/tal.o \ + ccan/tal/grab_file/grab_file.o \ ccan/tal/link/link.o \ ccan/tal/path/path.o \ ccan/tal/str/str.o \ diff --git a/tools/ccanlint/tests/info_documentation_exists.c b/tools/ccanlint/tests/info_documentation_exists.c index 13cf7c7b..47e72e57 100644 --- a/tools/ccanlint/tests/info_documentation_exists.c +++ b/tools/ccanlint/tests/info_documentation_exists.c @@ -12,6 +12,7 @@ #include #include #include +#include static void check_info_documentation_exists(struct manifest *m, unsigned int *timeleft, @@ -50,7 +51,7 @@ static void create_info_template_doc(struct manifest *m, struct score *score) err(1, "Writing to _info.new to insert documentation"); } - oldcontents = tal_grab_file(m, m->info_file->fullname, NULL); + oldcontents = grab_file(m, m->info_file->fullname); if (!oldcontents) { unlink_noerr("_info.new"); err(1, "Reading %s", m->info_file->fullname); diff --git a/tools/ccanlint/tests/tests_coverage.c b/tools/ccanlint/tests/tests_coverage.c index 2a7bf635..d877553e 100644 --- a/tools/ccanlint/tests/tests_coverage.c +++ b/tools/ccanlint/tests/tests_coverage.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -99,7 +100,7 @@ static void analyze_coverage(struct manifest *m, bool full_gcov, apostrophe = strchr(filename, '\''); *apostrophe = '\0'; if (lines_matter) { - file = tal_grab_file(score, filename, NULL); + file = grab_file(score, filename); if (!file) { score->error = tal_fmt(score, "Reading %s", diff --git a/tools/ccanlint/tests/tests_pass_valgrind.c b/tools/ccanlint/tests/tests_pass_valgrind.c index d697cd98..5b4250bc 100644 --- a/tools/ccanlint/tests/tests_pass_valgrind.c +++ b/tools/ccanlint/tests/tests_pass_valgrind.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "tests_pass.h" #include #include @@ -180,7 +181,7 @@ static void do_run_tests_vg(struct manifest *m, continue; } - output = tal_grab_file(i, i->valgrind_log, NULL); + output = grab_file(i, i->valgrind_log); /* No valgrind errors? */ if (!output || output[0] == '\0') { err = NULL; diff --git a/tools/depends.c b/tools/depends.c index a506c3d1..dde2b3ae 100644 --- a/tools/depends.c +++ b/tools/depends.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include "tools.h" @@ -42,11 +43,10 @@ lines_from_cmd(const void *ctx, const char *format, ...) char *compile_info(const void *ctx, const char *dir) { char *info_c_file, *info, *compiled, *output; - size_t len; int fd; /* Copy it to a file with proper .c suffix. */ - info = tal_grab_file(ctx, tal_fmt(ctx, "%s/_info", dir), &len); + info = grab_file(ctx, tal_fmt(ctx, "%s/_info", dir)); if (!info) return NULL; @@ -54,7 +54,7 @@ char *compile_info(const void *ctx, const char *dir) fd = open(info_c_file, O_WRONLY|O_CREAT|O_EXCL, 0600); if (fd < 0) return NULL; - if (!write_all(fd, info, len)) + if (!write_all(fd, info, tal_count(info)-1)) return NULL; if (close(fd) != 0) @@ -126,7 +126,7 @@ static char **get_one_safe_deps(const void *ctx, bool correct_style = false; fname = path_join(ctx, dir, "_info"); - raw = tal_grab_file(fname, fname, NULL); + raw = grab_file(fname, fname); if (!raw) errx(1, "Could not open %s", fname); diff --git a/tools/doc_extract.c b/tools/doc_extract.c index 3495c0c6..99c3202c 100644 --- a/tools/doc_extract.c +++ b/tools/doc_extract.c @@ -1,6 +1,7 @@ /* This merely extracts, doesn't do XML or anything. */ #include #include +#include #include "tools.h" #include #include @@ -45,7 +46,7 @@ int main(int argc, char *argv[]) struct list_head *list; struct doc_section *d; - file = tal_grab_file(NULL, argv[i], NULL); + file = grab_file(NULL, argv[i]); if (!file) err(1, "Reading file %s", argv[i]); lines = tal_strsplit(file, file, "\n", STR_EMPTY_OK); diff --git a/tools/manifest.c b/tools/manifest.c index fe3e4680..9a8c4cd0 100644 --- a/tools/manifest.c +++ b/tools/manifest.c @@ -3,6 +3,7 @@ #include "tools.h" #include #include +#include #include #include #include @@ -43,10 +44,10 @@ static struct htable_manifest *manifests; 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; } diff --git a/tools/namespacize.c b/tools/namespacize.c index ac413545..da2d5999 100644 --- a/tools/namespacize.c +++ b/tools/namespacize.c @@ -13,6 +13,7 @@ #include "ccan/take/take.h" #include "ccan/rbuf/rbuf.h" #include "ccan/tal/path/path.h" +#include "ccan/tal/grab_file/grab_file.h" #include "ccan/err/err.h" #include "tools.h" @@ -259,7 +260,7 @@ static void analyze_headers(const char *dir, struct replace **repl) hdr = tal_fmt(dir, "%s.h", path_join(NULL, dir, take(path_basename(NULL, dir)))); - contents = tal_grab_file(dir, hdr, NULL); + contents = grab_file(dir, hdr); if (!contents) err(1, "Reading %s", hdr); @@ -334,7 +335,7 @@ static const char *rewrite_file(const char *filename, int fd; verbose("Rewriting %s\n", filename); - file = tal_grab_file(filename, filename, NULL); + file = grab_file(filename, filename); if (!file) err(1, "Reading file %s", filename); @@ -431,7 +432,7 @@ static struct replace *read_replacement_file(const char *depdir) char *replname = path_join(depdir, depdir, ".namespacize"); char *file, **line; - file = tal_grab_file(replname, replname, NULL); + file = grab_file(replname, replname); if (!file) { if (errno != ENOENT) err(1, "Opening %s", replname); diff --git a/tools/read_config_header.c b/tools/read_config_header.c index 2701c902..da9ed0a3 100644 --- a/tools/read_config_header.c +++ b/tools/read_config_header.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "read_config_header.h" #include "tools.h" #include @@ -94,7 +95,7 @@ char *read_config_header(const char *ccan_dir, bool verbose) unsigned int i; char *config_header; - config_header = tal_grab_file(NULL, fname, NULL); + config_header = grab_file(NULL, fname); tal_free(fname); if (!config_header) diff --git a/tools/tools.c b/tools/tools.c index dc42ae47..f0a9ad46 100644 --- a/tools/tools.c +++ b/tools/tools.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -218,7 +219,6 @@ char *temp_file(const void *ctx, const char *extension, const char *srcname) bool move_file(const char *oldname, const char *newname) { char *contents; - size_t size; int fd; bool ret; @@ -233,7 +233,7 @@ bool move_file(const char *oldname, const char *newname) } /* Try copy and delete: not atomic! */ - contents = tal_grab_file(NULL, oldname, &size); + contents = grab_file(NULL, oldname); if (!contents) { if (tools_verbose) printf("read failed: %s\n", strerror(errno)); @@ -248,7 +248,7 @@ bool move_file(const char *oldname, const char *newname) goto free; } - ret = write_all(fd, contents, size); + ret = write_all(fd, contents, tal_count(contents)-1); if (close(fd) != 0) ret = false; @@ -272,23 +272,3 @@ void *do_tal_realloc(void *p, size_t size) tal_resize((char **)&p, size); return p; } - -void *tal_grab_file(const void *ctx, const char *filename, size_t *size) -{ - struct rbuf rbuf; - char *buf = tal_arr(ctx, char, 0); - - if (!rbuf_open(&rbuf, filename, buf, 0)) - return tal_free(buf); - - if (!rbuf_fill_all(&rbuf, do_tal_realloc) && errno) - rbuf.buf = tal_free(rbuf.buf); - else { - rbuf.buf[rbuf.len] = '\0'; - if (size) - *size = rbuf.len; - } - close(rbuf.fd); - - return rbuf.buf; -} diff --git a/tools/tools.h b/tools/tools.h index 60707499..b4751bec 100644 --- a/tools/tools.h +++ b/tools/tools.h @@ -57,7 +57,6 @@ void keep_temp_dir(void); bool move_file(const char *oldname, const char *newname); void *do_tal_realloc(void *p, size_t size); -void *tal_grab_file(const void *ctx, const char *filename, size_t *size); /* Freed on exit: a good parent for auto cleanup. */ tal_t *autofree(void); -- 2.39.2