X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fnamespacize.c;h=ac4135459d88b1868d8967013daa14c824ae23de;hp=13c1a36af985048c726243c6b6730e3f0207f42b;hb=95b59482c1bb18b7904ea60149eff4809dd28d80;hpb=dc8042b42500f79f613b1197df6cdf739615a89f diff --git a/tools/namespacize.c b/tools/namespacize.c index 13c1a36a..ac413545 100644 --- a/tools/namespacize.c +++ b/tools/namespacize.c @@ -12,6 +12,7 @@ #include "ccan/str/str.h" #include "ccan/take/take.h" #include "ccan/rbuf/rbuf.h" +#include "ccan/tal/path/path.h" #include "ccan/err/err.h" #include "tools.h" @@ -255,7 +256,9 @@ static void analyze_headers(const char *dir, struct replace **repl) char *hdr, *contents; /* Get hold of header, assume that's it. */ - hdr = tal_fmt(dir, "%s/%s.h", dir, tal_basename(dir, dir)); + hdr = tal_fmt(dir, "%s.h", + path_join(NULL, dir, take(path_basename(NULL, dir)))); + contents = tal_grab_file(dir, hdr, NULL); if (!contents) err(1, "Reading %s", hdr); @@ -273,7 +276,7 @@ static void analyze_headers(const char *dir, struct replace **repl) static void write_replacement_file(const char *dir, struct replace **repl) { - char *replname = tal_fmt(dir, "%s/.namespacize", dir); + char *replname = path_join(dir, dir, ".namespacize"); int fd; struct replace *r; @@ -413,10 +416,7 @@ static void convert_dir(const char *dir) struct adjusted *adj = NULL; /* Remove any ugly trailing slashes. */ - name = tal_strdup(NULL, dir); - while (strends(name, "/")) - name[strlen(name)-1] = '\0'; - + name = path_canon(NULL, dir); analyze_headers(name, &replace); write_replacement_file(name, &replace); setup_adjust_files(name, replace, &adj); @@ -428,7 +428,7 @@ static void convert_dir(const char *dir) static struct replace *read_replacement_file(const char *depdir) { struct replace *repl = NULL; - char *replname = tal_fmt(depdir, "%s/.namespacize", depdir); + char *replname = path_join(depdir, depdir, ".namespacize"); char *file, **line; file = tal_grab_file(replname, replname, NULL); @@ -445,7 +445,7 @@ static struct replace *read_replacement_file(const char *depdir) static void adjust_dir(const char *dir) { - char *parent = tal_dirname(autofree(), dir); + char *parent = path_dirname(autofree(), dir); char **deps; verbose("Adjusting %s\n", dir); @@ -457,7 +457,7 @@ static void adjust_dir(const char *dir) struct adjusted *adj = NULL; struct replace *repl; - depdir = tal_fmt(parent, "%s/%s", parent, *deps); + depdir = path_join(parent, parent, *deps); repl = read_replacement_file(depdir); if (repl) { verbose("%s has been namespacized\n", depdir); @@ -473,8 +473,8 @@ static void adjust_dir(const char *dir) static void adjust_dependents(const char *dir) { - char *parent = tal_dirname(NULL, dir); - char *base = tal_basename(parent, dir); + char *parent = path_dirname(NULL, dir); + char *base = path_basename(parent, dir); char **file; verbose("Looking for dependents in %s\n", parent); @@ -483,10 +483,10 @@ static void adjust_dependents(const char *dir) char *info, **deps; bool isdep = false; - if (tal_basename(*file, *file)[0] == '.') + if (path_basename(*file, *file)[0] == '.') continue; - info = tal_fmt(*file, "%s/_info", *file); + info = path_join(*file, *file, "_info"); if (access(info, R_OK) != 0) continue;