diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-26 18:32:55 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-26 18:32:55 +0530 |
commit | d352dfca1246998fdf30be0be4198ef989fc44c4 (patch) | |
tree | 3f6face3e6cdaca43d3c43cf9775916c4bd3a218 | |
parent | 0fab8d3176e6adee1bb2e44e0386d3295a99261b (diff) |
util: add wrap_ptr()
-rw-r--r-- | include/util.h | 1 | ||||
-rw-r--r-- | src/config.c | 26 | ||||
-rw-r--r-- | src/util.c | 9 |
3 files changed, 15 insertions, 21 deletions
diff --git a/include/util.h b/include/util.h index ebfe862..bd2d25c 100644 --- a/include/util.h +++ b/include/util.h @@ -8,5 +8,6 @@ typedef struct { char *ltrim(char *s); char *rtrim(char *s); char *trim(char *s); +ptr_wrapper_t *wrap_ptr(void *ptr); #endif diff --git a/src/config.c b/src/config.c index ce2c7b0..88f4c84 100644 --- a/src/config.c +++ b/src/config.c @@ -14,8 +14,6 @@ config_parse(char *content) list_t *values = list_create(sizeof(ptr_wrapper_t)); list_t *array_values = list_create(sizeof(list_t)); - ptr_wrapper_t *wrapper; - char *buffer = strdup(content); /* For free() */ char *x = buffer; @@ -24,10 +22,7 @@ config_parse(char *content) while (buffer != NULL) { buffer = ltrim(buffer); - - wrapper = malloc(sizeof(ptr_wrapper_t)); - wrapper->ptr = strdup(key); - list_add(keys, wrapper); + list_add(keys, wrap_ptr(strdup(key))); if (*buffer == '{') { buffer++; @@ -36,28 +31,17 @@ config_parse(char *content) char *value = strsep(&raw_array, DELIM_ARRAY); while (value != NULL) { - wrapper = malloc(sizeof(ptr_wrapper_t)); - wrapper->ptr = strdup(trim(value)); - list_add(l, wrapper); - + list_add(l, wrap_ptr(strdup(trim(value)))); value = strsep(&raw_array, DELIM_ARRAY); } list_add(array_values, l); - - wrapper = malloc(sizeof(ptr_wrapper_t)); - wrapper->ptr = NULL; - list_add(values, wrapper); + list_add(values, wrap_ptr(NULL)); } else { char *value = trim(strsep(&buffer, "\n")); - wrapper = malloc(sizeof(ptr_wrapper_t)); - wrapper->ptr = NULL; - list_add(array_values, wrapper); - - wrapper = malloc(sizeof(ptr_wrapper_t)); - wrapper->ptr = strdup(value); - list_add(values, wrapper); + list_add(array_values, wrap_ptr(NULL)); + list_add(values, wrap_ptr(strdup(value))); } key = trim(strsep(&buffer, DELIM)); @@ -1,4 +1,5 @@ #include <ctype.h> +#include <stdlib.h> #include <string.h> #include <util.h> @@ -25,3 +26,11 @@ trim(char *s) { return rtrim(ltrim(s)); } + +ptr_wrapper_t * +wrap_ptr(void *ptr) +{ + ptr_wrapper_t *wrapper = malloc(sizeof(ptr_wrapper_t)); + wrapper->ptr = ptr; + return wrapper; +} |