LibGame v0.4.0
The LG Game Engine - Copyright (C) 2024-2026 ETMSoftware
Loading...
Searching...
No Matches
lg_string.h
1/*
2 * LibGame - Copyright (C) Emmanuel Thomas-Maurin 2011-2026
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
15typedef struct LG_String LG_String;
16
17struct LG_String {
18 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 */
26typedef struct {
27 LG_String *lg_string;
28 char data[LG_STRING_DATA_MAX_LEN + 1];
30
32
33zboolean is_lg_string(LG_String *);
34
35LG_String *lg_string_new(const char *);
36
37const char *lg_string_get_data(LG_String *);
38
40
42
43int lg_string_count(uint32_t *);
44
45zboolean lgstring_array_to_lgstringdata_array(LG_String_Data *[], const LG_String *[], uint32_t);
46
47zboolean lgstringdata_array_to_lgstring_array(LG_String *[], const LG_String_Data *[], uint32_t);
48
50
51#endif /* LG_STRING_H */
LG_String * lg_string_new(const char *data)
Definition lg_string.c:99
int lg_string_count(uint32_t *total_size)
Definition lg_string.c:214
LG_String * lg_string_get_root()
Definition lg_string.c:52
zboolean lgstringdata_array_to_lgstring_array(LG_String *str[], const LG_String_Data *str_data[], uint32_t n_strings)
Definition lg_string.c:296
const char * lg_string_get_data(LG_String *string)
Definition lg_string.c:155
void lg_string_remove(LG_String *node)
Definition lg_string.c:167
zboolean lgstring_array_to_lgstringdata_array(LG_String_Data *str_data[], const LG_String *str[], uint32_t n_strings)
Definition lg_string.c:262
zboolean is_lg_string(LG_String *node)
Definition lg_string.c:74
void lg_string_remove_all()
Definition lg_string.c:197
void lg_string_info(LG_String *node)
Definition lg_string.c:330
Definition lg_string.h:26
Definition lg_string.h:17