aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/config.c20
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);
}