aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/engine.c7
-rw-r--r--src/lexer.c8
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;