From 2d9ad83a3d62ae83b3ea14266014d9b50148ad2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Fri, 24 Apr 2015 22:09:30 +0200 Subject: parse_kconfig fix wrong behaviour for non prompt symbols Non prompt symbols should be selected always as their dependencies are satisfied. This changes adds generation of relevant rules. --- scripts/parse_kconfig/output.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'scripts/parse_kconfig/output.c') diff --git a/scripts/parse_kconfig/output.c b/scripts/parse_kconfig/output.c index 989f4f0..064d787 100644 --- a/scripts/parse_kconfig/output.c +++ b/scripts/parse_kconfig/output.c @@ -1,27 +1,23 @@ #include "output.h" -void fprint_rules_cnf(FILE * f, unsigned id, struct cnfexpr *cnf, bool nt) { +void fprint_rules_cnf(FILE * f, struct cnfexpr *cnf) { unsigned i, y; switch (cnf->type) { case CT_FALSE: // Never satisfiable - if (!nt) - fprintf(f, "-"); - fprintf(f, "%d\n", id); - break; + // This should newer happen + fprintf(stderr, + "ERROR: Some rule is not satisfiable. But this should never happen.\n"); + exit(28); case CT_TRUE: // Always satisfiable break; case CT_EXPR: for (i = 0; i < cnf->size; i++) { - if (!nt) - fprintf(f, "-"); - fprintf(f, "%d ", id); for (y = 0; y < cnf->sizes[i] - 1; y++) { fprintf(f, "%d ", cnf->exprs[i][y]); } - fprintf(f, "%d ", cnf->exprs[i][cnf->sizes[i] - 1]); - fprintf(f, "\n"); + fprintf(f, "%d\n", cnf->exprs[i][cnf->sizes[i] - 1]); } break; } @@ -40,10 +36,10 @@ void fprint_rules(struct symlist *sl, char *output) { if (sl->array[i].be != NULL) { el = sl->array + i; if (el->be != NULL) { - fprint_rules_cnf(f, el->id, el->be, false); + fprint_rules_cnf(f, el->be); } if (el->re_be != NULL) { - fprint_rules_cnf(f, el->id, el->re_be, true); + fprint_rules_cnf(f, el->re_be); } } } -- cgit v1.2.3