| FreeTDS API
    | 
Handle dynamic string. More...
| Macros | |
| #define | tds_dstr_buf(s) ((*(s))->dstr_s) | 
| #define | tds_dstr_cstr(s) ((const char* ) tds_dstr_buf(s)) | 
| #define | tds_dstr_empty(s) tds_dstr_free(s) | 
| Make a string empty. | |
| #define | tds_dstr_init(s) do { *(s) = (struct tds_dstr*) &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) | 
| #define | TDS_WUR | 
| Functions | |
| DSTR * | tds_dstr_alloc (DSTR *s, size_t length) | 
| allocate space for length char  More... | |
| DSTR * | tds_dstr_copy (DSTR *s, const char *src) | 
| copy a string from another  More... | |
| DSTR * | tds_dstr_copyn (DSTR *s, const char *src, size_t length) | 
| Set string to a given buffer of characters.  More... | |
| 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.  More... | |
| DSTR * | tds_dstr_setlen (DSTR *s, size_t length) | 
| limit length of string, MUST be <= current length  More... | |
| 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 | 
 1.8.8
 1.8.8