#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include "string/string.h"
-#include "talloc/talloc.h"
+#include "ccan/str/str.h"
+#include "ccan/str_talloc/str_talloc.h"
+#include "ccan/grab_file/grab_file.h"
+#include "ccan/talloc/talloc.h"
#include "tools.h"
-#define IDENT_CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
- "abcdefghijklmnopqrstuvwxyz" \
- "01234567889_"
-
static bool verbose = false;
static int indent = 0;
#define verbose(args...) \
#define verbose_indent() (indent += 2)
#define verbose_unindent() (indent -= 2)
-#define strstarts(str,prefix) (strncmp((str),(prefix),strlen(prefix)) == 0)
-
-static inline bool strends(const char *str, const char *postfix)
-{
- if (strlen(str) < strlen(postfix))
- return false;
-
- return streq(str + strlen(str) - strlen(postfix), postfix);
-}
-
static int unlink_no_errno(const char *filename)
{
int ret = 0, serrno = errno;
/* Get hold of header, assume that's it. */
hdr = talloc_asprintf(dir, "%s/%s.h", dir, basename(dir, dir));
- contents = grab_file(dir, hdr);
+ contents = grab_file(dir, hdr, NULL);
if (!contents)
err(1, "Reading %s", hdr);
int fd;
verbose("Rewriting %s\n", filename);
- file = grab_file(filename, filename);
+ file = grab_file(filename, filename, NULL);
if (!file)
err(1, "Reading file %s", filename);
char *replname = talloc_asprintf(depdir, "%s/.namespacize", depdir);
char *file, **line;
- file = grab_file(replname, replname);
+ file = grab_file(replname, replname, NULL);
if (!file) {
if (errno != ENOENT)
err(1, "Opening %s", replname);
return NULL;
}
- for (line = split(file, file, "\n", NULL); *line; line++)
+ for (line = strsplit(file, file, "\n", NULL); *line; line++)
add_replace(&repl, *line);
return repl;
}
static void adjust_dir(const char *dir)
{
- char *parent = parent_dir(NULL, dir);
+ char *parent = parent_dir(talloc_autofree_context(), dir);
char **deps;
verbose("Adjusting %s\n", dir);
verbose_indent();
- for (deps = get_deps(parent, dir); *deps; deps++) {
+ for (deps = get_deps(parent, dir, false); *deps; deps++) {
char *depdir;
struct adjusted *adj = NULL;
struct replace *repl;
talloc_free(depdir);
}
verbose_unindent();
+ talloc_free(parent);
}
static void adjust_dependents(const char *dir)
verbose("Looking for dependents in %s\n", parent);
verbose_indent();
for (file = get_dir(parent); *file; file++) {
- char *infoc, **deps;
+ char *info, **deps;
bool isdep = false;
if (basename(*file, *file)[0] == '.')
continue;
- infoc = talloc_asprintf(*file, "%s/_info.c", *file);
- if (access(infoc, R_OK) != 0)
+ info = talloc_asprintf(*file, "%s/_info", *file);
+ if (access(info, R_OK) != 0)
continue;
- for (deps = get_deps(*file, *file); *deps; deps++) {
+ for (deps = get_deps(*file, *file, false); *deps; deps++) {
if (streq(*deps, base))
isdep = true;
}