aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-07-26 13:27:27 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-07-26 13:27:27 +0530
commitc514b27d48acc80f93defb540018bf2c4e00bf20 (patch)
treece603ba007af37fd5a707c311f30010b64dc572f /src
parent2618424ffd6aeff9a9c859fb2cf48c8e9b379c98 (diff)
config: use a list to keep track of keys and values
Diffstat (limited to 'src')
-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);
}