summaryrefslogtreecommitdiff
path: root/masm/strtbl.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--masm/strtbl.c54
1 files changed, 0 insertions, 54 deletions
diff --git a/masm/strtbl.c b/masm/strtbl.c
deleted file mode 100644
index 7bdbbea..0000000
--- a/masm/strtbl.c
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <merror.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "asm.h"
-
-int strtbl_get_str(struct str_table *str_tbl, const char *str, size_t *res)
-{
- for (size_t i = 0; i < str_tbl->size; i ++) {
- if (strcmp(str_tbl->ptr + i, str) == 0) {
- if (res != NULL)
- *res = i;
- return M_SUCCESS;
- }
- }
-
- return M_ERROR;
-}
-
-int strtbl_write_str(struct str_table *str_tbl, const char *str, size_t *res)
-{
- if (strtbl_get_str(str_tbl, str, res) == M_SUCCESS)
- return M_SUCCESS;
-
- size_t len = strlen(str);
- char *new = realloc(str_tbl->ptr, str_tbl->size + len + 1);
- if (new == NULL)
- return M_ERROR;
- str_tbl->ptr = new;
- memcpy(str_tbl->ptr + str_tbl->size, str, len + 1);
-
- if (res != NULL)
- *res = str_tbl->size;
-
- str_tbl->size += len + 1;
- return M_SUCCESS;
-}
-
-int strtbl_init(struct str_table *str_tbl)
-{
- str_tbl->size = 1;
- str_tbl->ptr = malloc(1);
- if (str_tbl->ptr == NULL) {
- ERROR("cannot alloc");
- return M_ERROR;
- }
- *str_tbl->ptr = '\0';
- return M_SUCCESS;
-}
-
-void strtbl_free(struct str_table *str_tbl)
-{
- free(str_tbl->ptr);
-}