blob: 72baae78c30438ea8348575a0c8b83aa223a7a18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
// internal
#include "rodeo.h"
#include "rodeo_types.h"
// external
#define i_implement
#include <stc/cstr.h>
typedef union cstr rodeo_string_t;
rodeo_string_p
rodeo_string_create(const char *c_string)
{
cstr* result = calloc(1, sizeof(cstr));
if(c_string != NULL)
{
*result = cstr_from(c_string);
}
return (rodeo_string_p)result;
}
void
rodeo_string_destroy(rodeo_string_p self)
{
cstr_drop((cstr*)self);
//free(string); // the above already calls free on the entire pointer
}
char*
rodeo_string_to_cstr(rodeo_string_p self)
{
return cstr_data((cstr*)self);
}
const char*
rodeo_string_to_constcstr(rodeo_string_p self)
{
return cstr_str((cstr*)self);
}
void
rodeo_string_insert(
rodeo_string_p self,
const rodeo_string_p insert,
intptr_t position
)
{
cstr_insert_s((cstr*)self, position, *(cstr*)insert);
}
void
rodeo_string_append(
rodeo_string_p self,
const rodeo_string_p append
)
{
rodeo_string_insert(
self,
append,
cstr_size((cstr*)self) - 1
);
}
void
rodeo_string_prepend(
rodeo_string_p self,
const rodeo_string_p prepend
)
{
rodeo_string_insert(
self,
prepend,
0
);
}
void
rodeo_string_clear(rodeo_string_p self)
{
cstr_clear((cstr*)self);
}
void
rodeo_string_set(rodeo_string_p self, char* value)
{
cstr_clear((cstr*)self);
cstr *temp = (cstr*)self;
*temp = cstr_from(value);
}
|