ccanlint: make _info ported an empty string on success.
authorRusty Russell <rusty@rustcorp.com.au>
Fri, 5 Feb 2016 03:39:45 +0000 (14:09 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Fri, 5 Feb 2016 03:39:45 +0000 (14:09 +1030)
Otherwise it describes what we need.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan/altstack/_info
tools/ccanlint/tests/info_ported.c
tools/depends.c
tools/tools.h

index a33af2cea802934cce4f5c6dd263ebde4fa382af..2713bd0e1534ef42a36e6ea8d0f6ffda51ab3aab 100644 (file)
@@ -124,9 +124,9 @@ int main(int argc, char *argv[])
 
        if (strcmp(argv[1], "ported") == 0) {
 #ifdef __x86_64__
 
        if (strcmp(argv[1], "ported") == 0) {
 #ifdef __x86_64__
-               printf("1\n");
+               printf("\n");
 #else
 #else
-               printf("0\n");
+               printf("Only x86-64 supported\n");
 #endif
        }
 
 #endif
        }
 
index f58f2f3498e3665125568f81a33b319017d2f1f7..4436008925e05ca509d622d200ff949d281c3c54 100644 (file)
 
 static const char *can_build(struct manifest *m)
 {
 
 static const char *can_build(struct manifest *m)
 {
+       char *msg;
+
        /* FIXME: In safe mode, we'd need complex guesstiparsing. */
        if (safe_mode)
                return NULL;
 
        /* FIXME: In safe mode, we'd need complex guesstiparsing. */
        if (safe_mode)
                return NULL;
 
-       if (get_ported(m, m->dir, true, get_or_compile_info))
+       msg = get_ported(m, m->dir, true, get_or_compile_info);
+       if (!msg)
                return NULL;
                return NULL;
-       return "'_info ported' says not supported";
+       return tal_fmt(m, "'_info ported' says '%s'", msg);
 }
 
 static void check_info_ported(struct manifest *m,
 }
 
 static void check_info_ported(struct manifest *m,
index 53fed44bff722571b39d54a5f94a47a7cfe7e694..f1ff30904c897d92fef28ba54cd7c41608af76c5 100644 (file)
@@ -282,31 +282,33 @@ char **get_cflags(const void *ctx, const char *dir,
        return flags;
 }
 
        return flags;
 }
 
-static bool get_one_ported(const void *ctx, const char *dir,
-                          char *(*get_info)(const void *ctx, const char *dir))
+static char *get_one_ported(const void *ctx, const char *dir,
+                           char *(*get_info)(const void *ctx, const char *dir))
 {
        char **ported = get_one_prop(ctx, dir, "ported", get_info);
 
        /* No news is good news. */
        if (!ported || tal_count(ported) == 0)
 {
        char **ported = get_one_prop(ctx, dir, "ported", get_info);
 
        /* No news is good news. */
        if (!ported || tal_count(ported) == 0)
-               return true;
+               return NULL;
 
        if (tal_count(ported) != 1)
                errx(1, "%s/_info ported gave %zu lines, not one",
                     dir, tal_count(ported));
 
        if (tal_count(ported) != 1)
                errx(1, "%s/_info ported gave %zu lines, not one",
                     dir, tal_count(ported));
-               
-       if (streq(ported[0], "1"))
-               return true;
-       else if (streq(ported[0], "0"))
-               return false;
-       errx(1, "%s/_info ported gave invalid output '%s'", dir, ported[0]);
+
+       if (streq(ported[0], ""))
+               return NULL;
+       else
+               return ported[0];
 }
 
 }
 
-bool get_ported(const void *ctx, const char *dir, bool recurse,
+char *get_ported(const void *ctx, const char *dir, bool recurse,
                char *(*get_info)(const void *ctx, const char *dir))
 {
                char *(*get_info)(const void *ctx, const char *dir))
 {
-       if (!get_one_ported(ctx, dir, get_info))
-               return false;
+       char *msg;
+
+       msg = get_one_ported(ctx, dir, get_info);
+       if (msg)
+               return msg;
 
        if (recurse) {
                size_t i;
 
        if (recurse) {
                size_t i;
@@ -317,11 +319,12 @@ bool get_ported(const void *ctx, const char *dir, bool recurse,
                                continue;
 
                        subdir = path_join(ctx, find_ccan_dir(dir), deps[i]);
                                continue;
 
                        subdir = path_join(ctx, find_ccan_dir(dir), deps[i]);
-                       if (!get_one_ported(ctx, subdir, get_info))
-                               return false;
+                       msg = get_one_ported(ctx, subdir, get_info);
+                       if (msg)
+                               return msg;
                }
        }
                }
        }
-       return true;
+       return NULL;
 }
 
 char **get_libs(const void *ctx, const char *dir, const char *style,
 }
 
 char **get_libs(const void *ctx, const char *dir, const char *style,
index 7e2598c3167559df675c71df2f9d6ebcf624464a..3b5c4bed4fcc254e00630ced9804af3553077674 100644 (file)
@@ -46,8 +46,8 @@ char **get_libs(const void *ctx, const char *dir, const char *style,
 char **get_cflags(const void *ctx, const char *dir,
                char *(*get_info)(const void *ctx, const char *dir));
 
 char **get_cflags(const void *ctx, const char *dir,
                char *(*get_info)(const void *ctx, const char *dir));
 
-bool get_ported(const void *ctx, const char *dir, bool recurse,
-               char *(*get_info)(const void *ctx, const char *dir));
+char *get_ported(const void *ctx, const char *dir, bool recurse,
+                char *(*get_info)(const void *ctx, const char *dir));
 
 /* From tools.c */
 /* If set, print all commands run, all output they give and exit status. */
 
 /* From tools.c */
 /* If set, print all commands run, all output they give and exit status. */