Handle dynamic string. More...
Defines | |
#define | tds_dstr_buf(s) ((s)->dstr_s) |
#define | tds_dstr_cstr(s) ((const char* ) tds_dstr_buf(s)) |
#define | tds_dstr_init(s) do { DSTR *_tds_s = (s); _tds_s->dstr_size = 0; _tds_s->dstr_s = (char*) tds_str_empty; } while(0) |
init a string with empty | |
#define | tds_dstr_isempty(s) ((s)->dstr_size == 0) |
test if string is empty | |
#define | tds_dstr_len(s) ((s)->dstr_size) |
Functions | |
DSTR * | tds_dstr_alloc (DSTR *s, unsigned int length) |
allocate space for length char | |
DSTR * | tds_dstr_copy (DSTR *s, const char *src) |
copy a string from another | |
DSTR * | tds_dstr_copyn (DSTR *s, const char *src, unsigned int length) |
Set string to a given buffer of characters. | |
DSTR * | tds_dstr_dup (DSTR *s, const DSTR *src) |
void | tds_dstr_free (DSTR *s) |
free string | |
DSTR * | tds_dstr_set (DSTR *s, char *src) |
set a string from another buffer. | |
DSTR * | tds_dstr_setlen (DSTR *s, unsigned int length) |
limit length of string, MUST be <= current length | |
void | tds_dstr_zero (DSTR *s) |
clear all string filling with zeroes (mainly for security reason) |
Handle dynamic string.
In this string are always valid (you don't have NULL pointer, only empty string)
allocate space for length char
allocate space for length char
allocate space for length char
s | dynamic string |
length | new length |
copy a string from another
s | dynamic string |
src | source buffer |
Set string to a given buffer of characters.
s | dynamic string |
src | source buffer |
length | length of source buffer |
set a string from another buffer.
The string will use the supplied buffer (it not copy the string), so it should be a pointer returned by malloc.
s | dynamic string |
src | source buffer |