tools: use tal/grab_file
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 10 Jun 2014 03:36:16 +0000 (13:06 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 10 Jun 2014 03:36:16 +0000 (13:06 +0930)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
12 files changed:
tools/Makefile
tools/ccanlint/Makefile
tools/ccanlint/tests/info_documentation_exists.c
tools/ccanlint/tests/tests_coverage.c
tools/ccanlint/tests/tests_pass_valgrind.c
tools/depends.c
tools/doc_extract.c
tools/manifest.c
tools/namespacize.c
tools/read_config_header.c
tools/tools.c
tools/tools.h

index 1ab69c928e625c6ddabb0d31d0160b83a2a2171a..ddd6545fc694b9d91e9d5a3ec9014aa1c49acb8d 100644 (file)
@@ -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 \
index f09835a4b79e44377257c0b1c29af68850092bc2..691f270890e0f352edc3f2815c97a01ab59428ad 100644 (file)
@@ -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 \
index 13cf7c7be5161114fd0eda1b4161f25ee748808a..47e72e5777edcb9824f5a5c069678285054ea872 100644 (file)
@@ -12,6 +12,7 @@
 #include <err.h>
 #include <ccan/str/str.h>
 #include <ccan/noerr/noerr.h>
+#include <ccan/tal/grab_file/grab_file.h>
 
 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);
index 2a7bf635eab22363f20c70722e69539e1446267b..d877553e68b950b7bcc7a2562731f8349bf53536 100644 (file)
@@ -2,6 +2,7 @@
 #include <tools/tools.h>
 #include <ccan/str/str.h>
 #include <ccan/tal/path/path.h>
+#include <ccan/tal/grab_file/grab_file.h>
 #include <ccan/foreach/foreach.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -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",
index d697cd981a1b19037781754c4cedb8634c4f7437..5b4250bc1c0596537b7fc80bcea9964eafb728bf 100644 (file)
@@ -3,6 +3,7 @@
 #include <ccan/str/str.h>
 #include <ccan/take/take.h>
 #include <ccan/foreach/foreach.h>
+#include <ccan/tal/grab_file/grab_file.h>
 #include "tests_pass.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -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;
index a506c3d1c7e526a41fdf7336b37f84f8dec59206..dde2b3ae3673eef0094ae85c3fd8187a2d0dc78a 100644 (file)
@@ -2,6 +2,7 @@
 #include <ccan/read_write_all/read_write_all.h>
 #include <ccan/rbuf/rbuf.h>
 #include <ccan/tal/path/path.h>
+#include <ccan/tal/grab_file/grab_file.h>
 #include <ccan/compiler/compiler.h>
 #include <ccan/err/err.h>
 #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);
 
index 3495c0c6b6b44a943436fbcc4bb287e4dc8f327e..99c3202ca0bf2ccd1034b113a02cc71a6a27fe32 100644 (file)
@@ -1,6 +1,7 @@
 /* This merely extracts, doesn't do XML or anything. */
 #include <ccan/str/str.h>
 #include <ccan/err/err.h>
+#include <ccan/tal/grab_file/grab_file.h>
 #include "tools.h"
 #include <string.h>
 #include <stdio.h>
@@ -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);
index fe3e4680b2d49117338def1e27bfc3b2ff58607e..9a8c4cd097d9632387032ad2366ac438e17c1d97 100644 (file)
@@ -3,6 +3,7 @@
 #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>
@@ -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;
 }
index ac4135459d88b1868d8967013daa14c824ae23de..da2d599986c104d900d2dddc9f623878a6b0d8d6 100644 (file)
@@ -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);
index 2701c9023ec92f1e68e3b16bb768f68bb396831c..da9ed0a3fad62bdd3330285ae67751ef8084c7d2 100644 (file)
@@ -1,6 +1,7 @@
 #include <ccan/err/err.h>
 #include <ccan/str/str.h>
 #include <ccan/tal/path/path.h>
+#include <ccan/tal/grab_file/grab_file.h>
 #include "read_config_header.h"
 #include "tools.h"
 #include <string.h>
@@ -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)
index dc42ae47ac427fdc46065d0262c7386738aadb54..f0a9ad46f1e8e48307cedc1b9f4ef608a8a9aac4 100644 (file)
@@ -6,6 +6,7 @@
 #include <ccan/noerr/noerr.h>
 #include <ccan/time/time.h>
 #include <ccan/tal/path/path.h>
+#include <ccan/tal/grab_file/grab_file.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/time.h>
@@ -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;
-}
index 60707499efcf559b2848d1778763eeba809ffa67..b4751bec51734230c5b49de868e31764dc8188d5 100644 (file)
@@ -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);