From f20d8f711588a1918a6d75b99b0e11d745ca8395 Mon Sep 17 00:00:00 2001 From: frosty Date: Sat, 8 Aug 2026 13:25:16 -0400 Subject: refactor: add capacity-aware template string matrices --- src/Utility/Utility.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/Utility/Utility.h') diff --git a/src/Utility/Utility.h b/src/Utility/Utility.h index 9fca8b6..663f2c4 100644 --- a/src/Utility/Utility.h +++ b/src/Utility/Utility.h @@ -13,6 +13,13 @@ #define LINK_FIELD_COUNT 3 +typedef struct { + char ***rows; + int *field_counts; + int count; + int capacity; +} StringMatrix; + int hex_to_int(char c); char *get_theme(const char *default_theme); void init_themes(const char *static_path); @@ -28,11 +35,19 @@ int append_string_row(char ****matrix, int **inner_counts, int row_count, const char *const *values, int field_count); void free_string_matrix(char ***matrix, int *inner_counts, int row_count); +void string_matrix_init(StringMatrix *matrix); +int string_matrix_append(StringMatrix *matrix, const char *const *values, + int field_count); +void string_matrix_free(StringMatrix *matrix); + int add_link_to_collection(const char *href, const char *label, const char *class_name, char ****collection, int **inner_counts, int current_count); int build_pagination(int page, char *(*href_builder)(int page, void *data), void *data, char ****out_matrix, int **out_inner_counts); +int string_matrix_build_pagination(int page, + char *(*href_builder)(int page, void *data), + void *data, StringMatrix *out_matrix); #endif -- cgit v1.3