LibGame  v0.4.0
The LG Game Engine - Copyright (C) 2024-2025 ETMSoftware
lg_string.h
1 /*
2  * LibGame - Copyright (C) Emmanuel Thomas-Maurin 2011-2025
3  * All rights reserved
4  */
5 
6 #ifndef LG_STRING_H
7 #define LG_STRING_H
8 
9 #define LG_STRING_MAX_LEN 4096 /* Is this making sense ? */
10 #define LG_STRING_SIG "LG_String"
11 #define LG_STRING_SIG_LEN 9
12 
13 #define LG_STRING_DATA_MAX_LEN (512 - 1)
14 
15 typedef struct LG_String LG_String;
16 
17 struct LG_String {
18  const char *data; /* Most probably some text */
19  uint32_t size; /* Doesn't include terminating NULL */
20  LG_String *prev;
21  LG_String *next;
22  uint8_t sig[LG_STRING_SIG_LEN]; /* Not NULL-terminated */
23 };
24 
25 /* Kind of 'expanded' LG_String */
26 typedef struct {
27  LG_String *lg_string;
28  char data[LG_STRING_DATA_MAX_LEN + 1];
30 
32 
33 zboolean is_lg_string(LG_String *);
34 
35 LG_String *lg_string_new(const char *);
36 
37 const char *lg_string_get_data(LG_String *);
38 
40 
42 
43 int lg_string_count(uint32_t *);
44 
45 zboolean lgstring_array_to_lgstringdata_array(LG_String_Data *[], const LG_String *[], uint32_t);
46 
47 zboolean lgstringdata_array_to_lgstring_array(LG_String *[], const LG_String_Data *[], uint32_t);
48 
50 
51 #endif /* LG_STRING_H */
LG_String_Data
Definition: lg_string.h:26
lg_string_get_root
LG_String * lg_string_get_root()
Definition: lg_string.c:50
is_lg_string
zboolean is_lg_string(LG_String *node)
Definition: lg_string.c:72
lg_string_get_data
const char * lg_string_get_data(LG_String *string)
Definition: lg_string.c:149
lg_string_remove_all
void lg_string_remove_all()
Definition: lg_string.c:191
lg_string_new
LG_String * lg_string_new(const char *data)
Definition: lg_string.c:97
lgstring_array_to_lgstringdata_array
zboolean lgstring_array_to_lgstringdata_array(LG_String_Data *str_data[], const LG_String *str[], uint32_t n_strings)
Definition: lg_string.c:256
LG_String
Definition: lg_string.h:17
lg_string_remove
void lg_string_remove(LG_String *node)
Definition: lg_string.c:161
lgstringdata_array_to_lgstring_array
zboolean lgstringdata_array_to_lgstring_array(LG_String *str[], const LG_String_Data *str_data[], uint32_t n_strings)
Definition: lg_string.c:290
lg_string_count
int lg_string_count(uint32_t *total_size)
Definition: lg_string.c:208
lg_string_info
void lg_string_info(LG_String *node)
Definition: lg_string.c:324