diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 12:01:41 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 12:01:41 +0530 |
commit | 955face03fc66f20fd03c94a3cb00fbe025ed8dc (patch) | |
tree | 7efc9778f872ff97bd95b8eb3f99ffc8c22ef474 | |
parent | db38a30cb73a0f8b9db65c58d2a73dd46f095a5f (diff) |
engine,lexer: use strdup() instead of hacking asprintf()
-rw-r--r-- | src/engine.c | 7 | ||||
-rw-r--r-- | src/lexer.c | 8 |
2 files changed, 6 insertions, 9 deletions
diff --git a/src/engine.c b/src/engine.c index 50cfd56..413b2d1 100644 --- a/src/engine.c +++ b/src/engine.c @@ -8,6 +8,7 @@ #include <stdbool.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> void handle_include(char **buffer, key_match_t *match, directive_t *directive) @@ -25,8 +26,7 @@ handle_include(char **buffer, key_match_t *match, directive_t *directive) unsigned int size = fsize(f); char *partial_content = fcontent(f, size); - char *temp_buffer; - asprintf(&temp_buffer, "%s", *buffer); + char *temp_buffer = strdup(*buffer); free(*buffer); asprintf(buffer, @@ -53,8 +53,7 @@ handle_contentfor(char **buffer, printf("CONTENT: %s\n", operand->content); #endif - char *temp_buffer; - asprintf(&temp_buffer, "%s", *buffer); + char *temp_buffer = strdup(*buffer); free(*buffer); asprintf(buffer, diff --git a/src/lexer.c b/src/lexer.c index dcf4250..0adfb77 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -27,8 +27,7 @@ lex(char *buffer) current_offset += key->length + key->offset; if (current_offset != 0) { - char *raw_content; - asprintf(&raw_content, "%.*s", (int) key->offset, buffer); + char *raw_content = strndup(buffer, key->offset); directive_t *raw_directive = malloc(sizeof(directive_t)); raw_directive->type = _RAW; @@ -42,8 +41,7 @@ lex(char *buffer) } if (strlen(buffer) > 0) { - char *raw_content; - asprintf(&raw_content, "%s", buffer); + char *raw_content = strdup(buffer); directive_t *raw_directive = malloc(sizeof(directive_t)); raw_directive->type = _RAW; @@ -163,7 +161,7 @@ lexer_handle_contentfor(directive_t *directive, } } - asprintf(&operands->content, "%.*s", new_match->offset, buffer); + operands->content = strndup(buffer, new_match->offset); operands->length = match->offset + match->length + new_match->offset + new_match->length; |