X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Freduce_features.c;h=34a897061bb4fbe16c69800bf699f930d753502b;hp=183d798f7bd501b8b9eaed8e8ce9a58d52e43b69;hb=HEAD;hpb=758ab1f402b4af3cccac09548b709deca17ef930 diff --git a/tools/ccanlint/tests/reduce_features.c b/tools/ccanlint/tests/reduce_features.c index 183d798f..34a89706 100644 --- a/tools/ccanlint/tests/reduce_features.c +++ b/tools/ccanlint/tests/reduce_features.c @@ -2,10 +2,7 @@ #include #include #include -#include -#include #include -#include #include #include #include @@ -21,7 +18,7 @@ bool features_were_reduced; static const char *can_run(struct manifest *m) { if (!config_header) - return talloc_strdup(m, "Could not read config.h"); + return tal_strdup(m, "Could not read config.h"); return NULL; } @@ -86,7 +83,7 @@ static struct htable_option *get_used_options(struct manifest *m) info = get_ccan_line_info(f); struct pp_conditions *prev = NULL; - for (i = 0; i < f->num_lines; i++) { + for (i = 0; f->lines[i]; i++) { if (info[i].cond && info[i].cond != prev) { num += add_options(opts, info[i].cond); prev = info[i].cond; @@ -104,11 +101,12 @@ static struct htable_option *get_used_options(struct manifest *m) static struct htable_option *get_config_options(struct manifest *m) { - const char **lines = (const char **)strsplit(m, config_header, "\n"); + const char **lines = (const char **)tal_strsplit(m, config_header, "\n", + STR_EMPTY_OK); unsigned int i; struct htable_option *opts = htable_option_new(); - for (i = 0; i < talloc_array_length(lines) - 1; i++) { + for (i = 0; i < tal_count(lines) - 1; i++) { char *sym; if (!get_token(&lines[i], "#")) @@ -121,6 +119,9 @@ static struct htable_option *get_config_options(struct manifest *m) /* Don't override endian... */ if (strends(sym, "_ENDIAN")) continue; + /* Don't override HAVE_STRUCT_TIMESPEC. */ + if (streq(sym, "HAVE_STRUCT_TIMESPEC")) + continue; if (!get_token(&lines[i], "1")) continue; htable_option_add(opts, sym); @@ -129,8 +130,8 @@ static struct htable_option *get_config_options(struct manifest *m) } static void do_reduce_features(struct manifest *m, - bool keep, - unsigned int *timeleft, struct score *score) + unsigned int *timeleft UNNEEDED, + struct score *score) { struct htable_option *options_used, *options_avail, *options; struct htable_option_iter i; @@ -165,13 +166,12 @@ static void do_reduce_features(struct manifest *m, return; /* Now make our own config.h variant, with our own options. */ - hdr = talloc_strdup(m, "/* Modified by reduce_features */\n"); - hdr = talloc_append_string(hdr, config_header); + hdr = tal_strcat(m, "/* Modified by reduce_features */\n", + config_header); for (sym = htable_option_first(options, &i); sym; sym = htable_option_next(options, &i)) { - hdr = talloc_asprintf_append - (hdr, "#undef %s\n#define %s 0\n", sym, sym); + tal_append_fmt(&hdr, "#undef %s\n#define %s 0\n", sym, sym); } if (mkdir("reduced-features", 0700) != 0 && errno != EEXIST) err(1, "Creating reduced-features directory"); @@ -181,6 +181,7 @@ static void do_reduce_features(struct manifest *m, err(1, "Creating reduced-features/config.h"); if (!write_all(fd, hdr, strlen(hdr))) err(1, "Writing reduced-features/config.h"); + htable_option_free(options); close(fd); features_were_reduced = true; }