From de52acd37ea5634712ed78c624f77566e3ac634e Mon Sep 17 00:00:00 2001 From: bpc2003 Date: Mon, 10 Mar 2025 15:26:32 -0400 Subject: Removed need for parser and revised readdb to return struct keytablist * --- src/main.c | 41 +++++------------------------------------ 1 file changed, 5 insertions(+), 36 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index ac8f102..7dfa181 100644 --- a/src/main.c +++ b/src/main.c @@ -6,45 +6,15 @@ int main(int argc, char **argv) { - int open = 0; - int len = 2; - struct keytablist *list = calloc(len, sizeof(struct keytablist)); if (argc != 2) exit(1); char *filename = argv[1]; + struct keytablist *list = readdb(filename); + if (list == NULL) + exit(2); - uint8_t *buf = readdb(filename); - if (buf == NULL) - exit(0); - struct byte *bytes = parse(buf); - free(buf); - - for (int i = 0, j = 0; i < blen; ++i) { - switch (bytes[i].type) { - case BEGIN: - if (open == 1) { - fprintf(stderr, "missing close!\n"); - free(bytes); - exit(1); - } - open = 1; - break; - case END: - open = 0; - j++; - break; - case PAIR: - setkey(&list, &len, j, bytes[i].value); - free(bytes[i].value); - break; - case ERROR: - fprintf(stderr, "%s\n", bytes[i].value); - exit(1); - } - } - - writedb(filename, list, len); - for (int i = 0; i < len; ++i) { + writedb(filename, list); + for (int i = 0; i < list[0].len; ++i) { int *indexes = getkeys(list, i); for (int j = 0; indexes[j]; ++j) { printf("%s: ", list[i].tab[indexes[j]].key); @@ -65,6 +35,5 @@ int main(int argc, char **argv) } free(list); - free(bytes); exit(0); } -- cgit v1.2.3