7_dstring_ensure_size(
dstring_t*
string,
unsigned int size);
13 string->_buffer_size = buffer_size;
14 string->data = (buffer_size == 0) ? NULL : malloc(buffer_size);
31 _dstring_ensure_size(
string, string->
length + 2);
33 string->data[
string->length++] = character;
34 string->data[
string->length] =
'\0';
40 size_t source_length = strlen(source);
42 _dstring_ensure_size(
string, string->
length + source_length + 1);
44 memcpy(string->
data + string->
length, source, source_length + 1);
46 string->length += source_length;
52 size_t source_length = strlen(source);
54 _dstring_ensure_size(
string, source_length + 1);
56 memcpy(string->
data, source, source_length + 1);
58 string->length = source_length;
65_dstring_ensure_size(
dstring_t*
string,
unsigned int size)
67 if (size < string->_buffer_size) {
74 string->data = realloc(string->
data, new_size);
75 string->_buffer_size = new_size;
void dstring_concat(dstring_t *string, const char *source)
Concatenates a string on the end of the dstring.
void dstring_init(dstring_t *string, unsigned int buffer_size)
Initializes a dynamic string (dstring).
void dstring_putchar(dstring_t *string, int character)
Concatenates a character on the end of the dstring.
void dstring_copy(dstring_t *string, const char *source)
Copies the content of source to the dstring.
void dstring_close(dstring_t *string)
Closes the dynamic string.
unsigned int length
The length of the string.
char * data
Pointer for the raw string content (a normal C string).
struct dstring dstring_t
A dynamic string (dstring) that automatically reallocate her buffer when needed.
#define DSTRING_CHUNK_SIZE
The size of the chunk of a dynamic string.