45#define SHORT_STR_CAPACITY 25
46#define CAP_ADD_DELTA 256
53 char short_str[SHORT_STR_CAPACITY + 1];
66#define SSTR_TYPE_SHORT 0
67#define SSTR_TYPE_LONG 1
68#define SSTR_TYPE_REF 2
150#define sstr_length(s) ((struct sstr_s*)s)->length
303int sstr_parse_long(
sstr_t s,
long* v);
304int sstr_parse_int(
sstr_t* s,
int* v);
305void sstr_append_long_str(
sstr_t s,
long l);
306void sstr_append_float_str(
sstr_t s,
float f,
int precission);
307void sstr_append_double_str(
sstr_t s,
double f,
int precision);
308int sstr_parse_double(
sstr_t s,
double* v);
325#define sstr_append_cstr_if(dst, src, cond) \
326 sstr_append_of_if(dst, src, strlen(src), cond)
329int sstr_json_escape_string_append(
sstr_t out,
sstr_t in);
const char * sstr_version()
return version string.
Definition sstr.c:605
sstr_t sstr_vslprintf(const char *fmt, va_list args)
Printf implement.
Definition sstr.c:236
sstr_t sstr_printf_append(sstr_t buf, const char *fmt,...)
Same as sstr_printf(), but but print to buf instead of create a new one.
Definition sstr.c:226
void sstr_append_of_if(sstr_t s, const void *data, size_t length, int cond)
Append if cond is true, otherwise do nothing.
Definition sstr.c:821
int sstr_compare_c(sstr_t a, const char *b)
compare sstr_t a and c-style string b
Definition sstr.c:110
sstr_t sstr_substr(sstr_t s, size_t index, size_t len)
Get substring of s starting at index with length bytes.
Definition sstr.c:178
sstr_t sstr_dup(sstr_t s)
Duplicate s and return.
Definition sstr.c:176
void * sstr_t
sstr_t are objects that represent sequences of characters.
Definition sstr.h:73
void sstr_append_cstr(sstr_t dst, const char *src)
Extends the sstr_t by appending additional characters contained in src.
Definition sstr.c:172
sstr_t sstr(const char *cstr)
Create a sstr_t from C-style (NULL-terminated) string str.
Definition sstr.c:83
sstr_t sstr_ref(const void *data, size_t length)
Create a sstr_t from data with length bytes. The data is not copied, but have a pointer to data.
Definition sstr.c:75
sstr_t sstr_printf(const char *fmt,...)
printf implement.
Definition sstr.c:216
void sstr_append_of(sstr_t s, const void *data, size_t length)
Extends the sstr_t by appending additional characters in data with length of length at the end of its...
Definition sstr.c:161
void sstr_append_indent(sstr_t s, size_t indent)
append spaces at the end of the sstr_t.
Definition sstr.c:830
void sstr_clear(sstr_t s)
clear the sstr_t. After this call, the sstr_t is empty.
Definition sstr.c:190
int sstr_compare(sstr_t a, sstr_t b)
Compare a and b return 0 if equal, <0 if a < b, >0 if a > b.
Definition sstr.c:87
sstr_t sstr_of(const void *data, size_t length)
Create a sstr_t from data with length bytes.
Definition sstr.c:58
sstr_t sstr_vslprintf_append(sstr_t buf, const char *fmt, va_list args)
Same as sstr_vslprintf, but print to buf instead of create a new one.
Definition sstr.c:242
void sstr_append(sstr_t dst, sstr_t src)
Extends the sstr_t by appending additional characters contained in src.
Definition sstr.c:168
sstr_t sstr_new()
Create an empty sstr_t.
Definition sstr.c:41
void sstr_free(sstr_t s)
delete a sstr_t.
Definition sstr.c:47
char * sstr_cstr(sstr_t s)
Return C-style string representation of s.
Definition sstr.c:85
void sstr_append_int_str(sstr_t s, int i)
convert sstr <-> int,long,float,double
Definition sstr.c:610
void sstr_append_zero(sstr_t s, size_t length)
Extends the sstr_t by appending additional '\0' characters at the end of its current value.
Definition sstr.c:124