ccanlint: Add -k option to keep results.
[ccan] / tools / tools.c
index 769d6aeee7b1535ad191c3c22167ccb616ed283c..25917d35289244fa224652ad6f9a787a44f65919 100644 (file)
@@ -145,6 +145,8 @@ char *run_command(const void *ctx, unsigned int *time_ms, const char *fmt, ...)
 
        if (!time_ms)
                time_ms = &default_time;
+       else if (*time_ms == 0)
+               return talloc_strdup(ctx, "\n== TIMED OUT ==\n");
 
        va_start(ap, fmt);
        cmd = talloc_vasprintf(ctx, fmt, ap);
@@ -197,6 +199,18 @@ char *temp_file(const void *ctx, const char *extension)
        return talloc_asprintf(ctx, "%s/%u%s", tmpdir, count++, extension);
 }
 
+char *maybe_temp_file(const void *ctx, const char *extension, bool keep,
+                     const char *srcname)
+{
+       size_t baselen;
+
+       if (!keep)
+               return temp_file(ctx, extension);
+
+       baselen = strrchr(srcname, '.') - srcname;
+       return talloc_asprintf(ctx, "%.*s%s", baselen, srcname, extension);
+}
+
 bool move_file(const char *oldname, const char *newname)
 {
        char *contents;