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
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 |