From ed22849143a687f4f435de5738984a3a8de1723c Mon Sep 17 00:00:00 2001 From: anon Date: Thu, 24 Aug 2023 03:47:09 +0200 Subject: [PATCH] it compiles --- source/main.c | 4 +-- source/regex.c | 4 +-- source/terminal_hl.h | 8 +++--- source/vector.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ source/vector.h | 68 --------------------------------------------------- 5 files changed, 78 insertions(+), 75 deletions(-) create mode 100644 source/vector.c diff --git a/source/main.c b/source/main.c index 5027f93..7a7390e 100644 --- a/source/main.c +++ b/source/main.c @@ -3,7 +3,7 @@ #include #include #include -#include "hl.h" +#include "terminal_hl.h" #define ALLOCATION_CHUNK (10UL) @@ -36,7 +36,7 @@ int main(int argc, // Highlight init terminal_hl_init(); // - #include "hl_c.inc"; + #include "hl_c.inc" // render_string(buffer, "cterm"); putchar('\n'); diff --git a/source/regex.c b/source/regex.c index e59e14f..cef41ad 100644 --- a/source/regex.c +++ b/source/regex.c @@ -19,12 +19,12 @@ typedef struct { #define HOOK_ALL(from, str, to) do { \ for (char * s = str; *s != '\00'; s++) { \ vector_push(®ex->delta_table, \ - (delta_t *){state + from, *s, state + to} \ + &(delta_t){state + from, *s, state + to} \ ); \ } \ if (do_catch) { \ vector_push(®ex->catch_table, \ - (offshoot_t *){state + from, state + to} \ + &(offshoot_t){state + from, state + to} \ ); \ } \ } while (0) diff --git a/source/terminal_hl.h b/source/terminal_hl.h index 5d4e2c7..19e6b0f 100644 --- a/source/terminal_hl.h +++ b/source/terminal_hl.h @@ -1,3 +1,5 @@ +#include "hl.h" + typedef struct { char * attribute; char * foreground_color; @@ -38,7 +40,7 @@ int terminal_hl_init(void){ .foreground_color = TERMINAL_COLOR_FG_GREEN, .background_color = NULL }; - keyword_hl = (hl_group_t) { + keyword_hl = &(hl_group_t) { .link = NULL, .attributes = (void*)&terminal_keyword_hl }; @@ -48,7 +50,7 @@ int terminal_hl_init(void){ .foreground_color = TERMINAL_COLOR_FG_BLUE, .background_color = NULL }; - preprocessor_hl = (hl_group_t) { + preprocessor_hl = &(hl_group_t) { .link = NULL, .attributes = (void*)&terminal_preprocessor_hl }; @@ -58,7 +60,7 @@ int terminal_hl_init(void){ .foreground_color = TERMINAL_COLOR_FG_YELLOW, .background_color = NULL }; - symbol_hl = (hl_group_t) { + symbol_hl = &(hl_group_t) { .link = NULL, .attributes = (void*)&terminal_symbol_hl }; diff --git a/source/vector.c b/source/vector.c new file mode 100644 index 0000000..8713e35 --- /dev/null +++ b/source/vector.c @@ -0,0 +1,69 @@ +#include "vector.h" + +void vector_init(vector_t * vector, + size_t element_size, + size_t element_count) { + vector->data = NULL; + vector->element_size = element_size; + vector->element_count = element_count; + + vector->data = malloc(vector->element_size * vector->element_count); + + if ((! vector->data) && (vector->element_count)) { + puts("vector_init"); + exit(EXIT_FAILURE); + } + + memset(vector->data, + 0, + vector->element_size * vector->element_count); +} + +void vector_push(vector_t * vector, + void * data) { + ++vector->element_count; + + vector->data = realloc(vector->data, + vector->element_size * vector->element_count); + + if (! vector->data) { + puts("vector_push"); + exit(EXIT_FAILURE); + } + + memcpy(&vector->data[(vector->element_count - 1) * vector->element_size], + data, + vector->element_size); +} + +void vector_pop(vector_t * vector) { + (void) vector; +} + +void * vector_get(const vector_t * const vector, + const size_t element) { + if (element >= vector->element_count) { + puts("vector_get"); + exit(EXIT_FAILURE); + } + + return &vector->data[vector->element_size * element]; +} + +void vector_set(vector_t * vector, + void * data, + size_t element) { + if (element >= vector->element_count) { + puts("vector_set"); + exit(EXIT_FAILURE); + } + + memcpy(&vector->data[vector->element_size * element], + data, + vector->element_size); +} + +void vector_free(vector_t * vector) { + free(vector->data); +} + diff --git a/source/vector.h b/source/vector.h index 3e9740b..bb2e100 100644 --- a/source/vector.h +++ b/source/vector.h @@ -31,72 +31,4 @@ extern void vector_set(vector_t * vector, size_t element); extern void vector_free(vector_t * vector); - -void vector_init(vector_t * vector, - size_t element_size, - size_t element_count) { - vector->data = NULL; - vector->element_size = element_size; - vector->element_count = element_count; - - vector->data = malloc(vector->element_size * vector->element_count); - - if ((! vector->data) && (vector->element_count)) { - puts("vector_init"); - exit(EXIT_FAILURE); - } - - memset(vector->data, - 0, - vector->element_size * vector->element_count); -} - -void vector_push(vector_t * vector, - void * data) { - ++vector->element_count; - - vector->data = realloc(vector->data, - vector->element_size * vector->element_count); - - if (! vector->data) { - puts("vector_push"); - exit(EXIT_FAILURE); - } - - memcpy(&vector->data[(vector->element_count - 1) * vector->element_size], - data, - vector->element_size); -} - -void vector_pop(vector_t * vector) { - (void) vector; -} - -void * vector_get(const vector_t * const vector, - const size_t element) { - if (element >= vector->element_count) { - puts("vector_get"); - exit(EXIT_FAILURE); - } - - return &vector->data[vector->element_size * element]; -} - -void vector_set(vector_t * vector, - void * data, - size_t element) { - if (element >= vector->element_count) { - puts("vector_set"); - exit(EXIT_FAILURE); - } - - memcpy(&vector->data[vector->element_size * element], - data, - vector->element_size); -} - -void vector_free(vector_t * vector) { - free(vector->data); -} - #endif