20 printed = vsnprintf(buffer, maxlen+1, templat, parg);
22 printed = vsprintf(buffer, templat, parg);
51 static short oversized_counter = 0;
53 if ((
size_t)init_size*10 < strstr->
get_buffer_size()) oversized_counter++;
54 else oversized_counter = 0;
56 if (oversized_counter>10) {
80 if (last_bsize < curr_bsize) {
105 strstr->
ncat(ptr, len);
116 strstr->
vnprintf(maxlen+2, templat, parg);
129 long len = sprintf(buffer,
"%li", val);
135 long len = sprintf(buffer,
"%f", val);
146 void TEST_GBS_strstruct() {
157 #define EXPECT_CONTENT(content) TEST_EXPECT_EQUAL(GBS_mempntr(strstr), content)
159 void TEST_GBS_strstruct_old_interface() {
165 GBS_chrncat(strstr,
'b', 3); EXPECT_CONTENT(
"bbb");
166 GBS_intcat(strstr, 17); EXPECT_CONTENT(
"bbb17");
167 GBS_chrcat(strstr,
'_'); EXPECT_CONTENT(
"bbb17_");
168 GBS_floatcat(strstr, 3.5); EXPECT_CONTENT(
"bbb17_3.500000");
172 GBS_strcat(strstr,
"utter"); EXPECT_CONTENT(
"butter");
173 GBS_strncat(strstr,
"flying", 3); EXPECT_CONTENT(
"butterfly");
176 EXPECT_CONTENT(
"butterfly flutters");
187 for (
int i = 0; i<12; ++i) {
198 EXPECT_CONTENT(
"xxxxxxxxxxxxxxxxxxxx");
void cut_tail(size_t byte_count)
void vnprintf(size_t maxlen, const char *templat, va_list &parg) __ATTR__VFORMAT_MEMBER(2)
void GBS_strnprintf(GBS_strstruct *strstr, long maxlen, const char *templat,...)
void GBS_intcat(GBS_strstruct *strstr, long val)
void GBS_strncat(GBS_strstruct *strstr, const char *ptr, size_t len)
void nput(char c, size_t count)
void cat(const char *from)
char * release_mem(size_t &size)
char buffer[MESSAGE_BUFFERSIZE]
GBS_strstruct * GBS_stropen(long init_size)
size_t get_buffer_size() const
void alloc_mem(size_t blocksize)
void GBS_chrncat(GBS_strstruct *strstr, char ch, size_t n)
long GBS_memoffset(GBS_strstruct *strstr)
void GBS_strcat(GBS_strstruct *strstr, const char *ptr)
void GBS_str_cut_tail(GBS_strstruct *strstr, size_t byte_count)
void GBS_strforget(GBS_strstruct *strstr)
static GBS_strstruct last_used
void GBS_chrcat(GBS_strstruct *strstr, char ch)
void ensure_mem(size_t needed_size)
void ncat(const char *from, size_t count)
char * GBS_mempntr(GBS_strstruct *strstr)
#define assert_or_exit(cond)
void reassign_mem(GBS_strstruct &from)
void nprintf(size_t maxlen, const char *templat,...) __ATTR__FORMAT_MEMBER(2)
char * GBS_strclose(GBS_strstruct *strstr)
void GBS_floatcat(GBS_strstruct *strstr, double val)
#define TEST_EXPECT_DIFFERENT(expr, want)
const char * get_data() const
#define TEST_EXPECT_EQUAL(expr, want)
size_t get_position() const