X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fread_config_header.c;h=da9ed0a3fad62bdd3330285ae67751ef8084c7d2;hp=54f3a3c655d6a3e476a09b01219ab4a7d87f1649;hb=6aa2f4e347e5d66a392b879fe901bc582099a552;hpb=aabf300e324f7da5134d7ad45afba11225045c24 diff --git a/tools/read_config_header.c b/tools/read_config_header.c index 54f3a3c6..da9ed0a3 100644 --- a/tools/read_config_header.c +++ b/tools/read_config_header.c @@ -1,7 +1,7 @@ #include #include -#include -#include +#include +#include #include "read_config_header.h" #include "tools.h" #include @@ -16,7 +16,7 @@ char *get_symbol_token(void *ctx, const char **line) toklen = strspn(*line, IDENT_CHARS); if (!toklen) return NULL; - ret = talloc_strndup(ctx, *line, toklen); + ret = tal_strndup(ctx, *line, toklen); *line += toklen; return ret; } @@ -88,23 +88,21 @@ static char *demangle_string(char *string) return string; } -char *read_config_header(const char *ccan_dir, - const char **compiler, const char **cflags, - bool verbose) +char *read_config_header(const char *ccan_dir, bool verbose) { - char *fname = talloc_asprintf(NULL, "%s/config.h", ccan_dir); + char *fname = path_join(NULL, ccan_dir, "config.h"); char **lines; unsigned int i; char *config_header; - config_header = talloc_grab_file(NULL, fname, NULL); - talloc_free(fname); + config_header = grab_file(NULL, fname); + tal_free(fname); if (!config_header) - goto out; + return NULL; - lines = strsplit(config_header, config_header, "\n"); - for (i = 0; i < talloc_array_length(lines) - 1; i++) { + lines = tal_strsplit(config_header, config_header, "\n", STR_EMPTY_OK); + for (i = 0; i < tal_count(lines) - 1; i++) { char *sym; const char **line = (const char **)&lines[i]; @@ -113,30 +111,23 @@ char *read_config_header(const char *ccan_dir, if (!get_token(line, "define")) continue; sym = get_symbol_token(lines, line); - if (streq(sym, "CCAN_COMPILER") && !compiler) { - *compiler = demangle_string(lines[i]); - if (!*compiler) + if (streq(sym, "CCAN_COMPILER")) { + compiler = demangle_string(lines[i]); + if (!compiler) errx(1, "%s:%u:could not parse CCAN_COMPILER", fname, i+1); if (verbose) printf("%s: compiler set to '%s'\n", - fname, *compiler); - } else if (streq(sym, "CCAN_CFLAGS") && !cflags) { - *cflags = demangle_string(lines[i]); - if (!*cflags) + fname, compiler); + } else if (streq(sym, "CCAN_CFLAGS")) { + cflags = demangle_string(lines[i]); + if (!cflags) errx(1, "%s:%u:could not parse CCAN_CFLAGS", fname, i+1); if (verbose) printf("%s: compiler flags set to '%s'\n", - fname, *cflags); + fname, cflags); } } - -out: - if (!*compiler) - *compiler = CCAN_COMPILER; - if (!*cflags) - *cflags = CCAN_CFLAGS; - return config_header; }