#include <stdbool.h>
#include "../doc_extract.h"
+#define REGISTER_TEST(name, ...) extern struct ccanlint name
+#include "generated-init-tests"
+#undef REGISTER_TEST
+
+#define REGISTER_TEST(name, ...)
+
struct manifest {
char *basename;
struct ccan_file *info_file;
/* Can we do something about it? (NULL if not) */
void (*handle)(struct manifest *m, void *check_result);
+
+ /* Internal use fields: */
+ /* Who depends on us? */
+ struct list_head dependencies;
+ /* How many things do we (still) depend on? */
+ unsigned int num_depends;
};
/* Ask the user a yes/no question: the answer is NO if there's an error. */
char *name;
+ /* Pristine version of the original file.
+ * Use get_ccan_file_lines to fill this. */
+ const char *contents;
+ size_t contents_size;
+
/* Use get_ccan_file_lines / get_ccan_line_info to fill these. */
unsigned int num_lines;
char **lines;
MAYBE_COMPILED,
};
-/* Simple evaluator: if this pre-processor symbol is defined to this
- * value, is this line compiled? (Other symbols assumed undefined) */
+/* Simple evaluator. If symbols are set this way, is this condition true?
+ * NULL values mean undefined, NULL symbol terminates. */
enum line_compiled get_ccan_line_pp(struct pp_conditions *cond,
const char *symbol,
- unsigned int value);
+ const unsigned int *value, ...);
+
+/* Get token if it's equal to token. */
+bool get_token(const char **line, const char *token);
+/* Talloc copy of symbol token, or NULL. Increment line. */
+char *get_symbol_token(void *ctx, const char **line);
/* Similarly for ->doc_sections */
struct list_head *get_ccan_file_docs(struct ccan_file *f);
char *(*report)(const char *),
char *sofar);
-/* The critical tests which mean fail if they don't pass. */
-extern struct ccanlint no_info;
-extern struct ccanlint has_main_header;
-
/* Normal tests. */
extern struct ccanlint trailing_whitespace;
+
+/* Dependencies */
+struct dependent {
+ struct list_node node;
+ struct ccanlint *dependent;
+};
+
#endif /* CCAN_LINT_H */