diff options
author | bpc2003 <wpesfriendnva@gmail.com> | 2025-03-10 15:26:32 -0400 |
---|---|---|
committer | bpc2003 <wpesfriendnva@gmail.com> | 2025-03-10 15:26:32 -0400 |
commit | de52acd37ea5634712ed78c624f77566e3ac634e (patch) | |
tree | e09c9fd6980a9d81dbfe50b2e7aed86566c07654 /src/main.c | |
parent | 7c8e83f655e41b11e970fd0abad5a96a3fb73e47 (diff) |
Removed need for parser and revised readdb to return struct keytablist *
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 41 |
1 files changed, 5 insertions, 36 deletions
@@ -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); } |