diff options
| -rw-r--r-- | src/config.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/config.c b/src/config.c index 2b05ad6..daf97fa 100644 --- a/src/config.c +++ b/src/config.c @@ -1,6 +1,7 @@ #define _GNU_SOURCE #include <config.h> +#include <list.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -9,20 +10,31 @@ void config_parse(char *content) { + list_t *keys = list_create(sizeof(char *)); + list_t *values = list_create(sizeof(char *)); + char *buffer = strdup(content); char *line_internal = strtok(buffer, "\n"); while (line_internal != NULL) { char *line = strdup(line_internal); - char *key = strsep(&line, "="); - line = trim(line); + + char *value = line; + char *key = strsep(&value, "="); + value = trim(value); key = trim(key); - printf("Key: %s\n", key); - printf("Value: %s\n", line); + list_add(keys, strdup(key)); + list_add(values, strdup(value)); + free(line); line_internal = strtok(NULL, "\n"); } + for (size_t i = 0; i < keys->size; i++) { + printf( + "%s: %s\n", (char *) list_get(keys, i), (char *) list_get(values, i)); + } + free(buffer); } |
