From 701ce8ddec1f432e76c15d27e975bb4116681b91 Mon Sep 17 00:00:00 2001 From: Timo Lassmann Date: Thu, 3 Oct 2024 14:44:11 +0200 Subject: [PATCH] modified template --- src/template/template.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/template/template.c b/src/template/template.c index 64b8be6..2442d17 100644 --- a/src/template/template.c +++ b/src/template/template.c @@ -44,7 +44,6 @@ static unsigned int str_hash(char *str, int table_size) int tld_template_add(tld_template_hash **hash, char *key, char *val) { tld_template_hash* h = NULL; - if(*hash){ h = *hash; }else{ @@ -55,8 +54,20 @@ int tld_template_add(tld_template_hash **hash, char *key, char *val) unsigned int index = str_hash(key, h->table_size); - // Create a new entry - tld_template_hash_entry* new_entry = NULL;//(tld_template_hash_entry*)malloc(sizeof(tld_template_hash_entry)); + // Check if key already exists + tld_template_hash_entry* current = h->table[index]; + while (current) { + if (strcmp(TLD_STR(current->key), key) == 0) { + // Key exists, replace the value + tld_strbuf_clear(current->value); + tld_append(current->value, val); + return OK; + } + current = current->next; + } + + // Key does not exist, create a new entry + tld_template_hash_entry* new_entry = NULL; MMALLOC(new_entry, sizeof(tld_template_hash_entry)); tld_strbuf_alloc(&new_entry->key, 16); tld_strbuf_alloc(&new_entry->value, 16);