diff options
Diffstat (limited to 'programs/src/kconfig/output.c')
-rw-r--r-- | programs/src/kconfig/output.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/programs/src/kconfig/output.c b/programs/src/kconfig/output.c deleted file mode 100644 index ed9daec..0000000 --- a/programs/src/kconfig/output.c +++ /dev/null @@ -1,82 +0,0 @@ -#include "output.h" - -void fprint_rules(struct symlist *sl) { - FILE *f; - f = fopen(RULES_FILE, "w"); - if (f == NULL) { - fprintf(stderr, "Can't create file: %s\n", RULES_FILE); - return; - } - int i; - struct symlist_el *el; - struct boolexp *be; - struct boolexp **stack; - size_t stack_size = 2, stack_pos = 0; - int count_or, count_and; - stack = malloc(stack_size * sizeof(struct boolexp *)); - for (i = 0; i < sl->pos; i++) { - if (sl->array[i].be != NULL) { - el = sl->array + i; - be = el->be; - stack_pos = 0; - count_or = 0; - count_and = 0; - fprintf(f, "-%d ", el->id); - while (be != NULL) { - if (stack_pos >= stack_size) { - stack_size *= 2; - stack = - realloc(stack, - stack_size * sizeof(struct boolexp *)); - } - switch (be->type) { - case BE_NOT: - fprintf(f, "-"); - be = be->left.be; - break; - case BE_AND: - count_and++; - stack[stack_pos++] = be->right.be; - be = be->left.be; - break; - case BE_OR: - count_or++; - stack[stack_pos++] = be->right.be; - be = be->left.be; - break; - case BE_LEAF: - fprintf(f, "%d", be->left.id); - if (count_or > 0) { - fprintf(f, " "); - count_or--; - } else if (count_and > 0) { - fprintf(f, "\n-%d ", el->id); - count_and--; - } - if (stack_pos > 0) - be = stack[--stack_pos]; - else - be = NULL; - break; - } - } - fprintf(f, "\n"); - } - } - free(stack); - fclose(f); -} - -void fprint_linker(struct symlist *sl) { - FILE *f; - f = fopen(LINKER_FILE, "w"); - if (f == NULL) { - fprintf(stderr, "Can't create file: %s\n", RULES_FILE); - return; - } - int i; - for (i = 0; i < sl->pos; i++) { - fprintf(f, "%d:%s\n", sl->array[i].id, sl->array[i].name); - } - fclose(f); -} |