29 #ifndef _GLIBCXX_ALGORITHM
42 void set_pos(
size_t toPos) {
44 if (data) data[pos] = 0;
46 void inc_pos(
size_t inc) { set_pos(pos+inc); }
70 const char *
get_data()
const {
return null2empty(data); }
90 buffer_size = blocksize;
102 std::swap(buffer_size, other.buffer_size);
110 assign_mem(ARB_alloc<char>(blocksize), blocksize);
117 buffer_size = newsize;
125 size_t whole_needed_size = pos+needed_size+1;
126 if (buffer_size<whole_needed_size) {
127 size_t next_size = (whole_needed_size * 3) >> 1;
135 set_pos(pos<byte_count ? 0 : pos-byte_count);
143 void nput(
char c,
size_t count) {
146 memset(data+pos, c, count);
151 void ncat(
const char *from,
size_t count) {
154 memcpy(data+pos, from, count);
158 void cat(
const char *from) {
ncat(from, strlen(from)); }
160 int ncatTrimmed(
const char *from,
size_t count,
size_t trimmedWidth) {
163 int toTrim =
long(trimmedWidth)-
long(count);
164 if (toTrim>0)
nput(
' ', toTrim);
173 return ncatTrimmed(from, strlen(from), trimmedWidth);
200 #error arb_strbuf.h included twice
201 #endif // ARB_STRBUF_H
int ncatTrimmed(const char *from, size_t count, size_t trimmedWidth)
void assign_mem(char *block, size_t blocksize)
void cut_tail(size_t byte_count)
void GBS_strncat(GBS_strstruct *strstr, const char *ptr, size_t len)
void GBS_str_cut_tail(GBS_strstruct *strstr, size_t byte_count)
void vnprintf(size_t maxlen, const char *templat, va_list &parg) __ATTR__VFORMAT_MEMBER(2)
char * GBS_strclose(GBS_strstruct *strstr)
void GBS_intcat(GBS_strstruct *strstr, long val)
void GBS_strforget(GBS_strstruct *strstr)
#define __ATTR__FORMAT(pos)
void GBS_chrncat(GBS_strstruct *strstr, char ch, size_t n)
void nput(char c, size_t count)
void GBS_chrcat(GBS_strstruct *strstr, char ch)
void cat(const char *from)
char * release_mem(size_t &size)
long GBS_memoffset(GBS_strstruct *strstr)
size_t get_buffer_size() const
#define __ATTR__FORMAT_MEMBER(pos)
void alloc_mem(size_t blocksize)
CONSTEXPR_INLINE_Cxx14 void swap(unsigned char &c1, unsigned char &c2)
void GBS_strcat(GBS_strstruct *strstr, const char *ptr)
void swap_content(GBS_strstruct &other)
GBS_strstruct(size_t buffersize)
void GBS_floatcat(GBS_strstruct *strstr, double val)
void ensure_mem(size_t needed_size)
void ncat(const char *from, size_t count)
char * ARB_strndup(const char *start, int len)
void reassign_mem(GBS_strstruct &from)
void nprintf(size_t maxlen, const char *templat,...) __ATTR__FORMAT_MEMBER(2)
void ARB_realloc(TYPE *&tgt, size_t nelem)
char * GBS_mempntr(GBS_strstruct *strstr)
int catTrimmed(const char *from, size_t trimmedWidth)
const char * get_data() const
void GBS_strnprintf(GBS_strstruct *strstr, long maxlen, const char *templat,...) __ATTR__FORMAT(3)
GBS_strstruct * GBS_stropen(long init_size)
#define __ATTR__VFORMAT_MEMBER(pos)
size_t get_position() const
void realloc_mem(size_t newsize)
GB_write_int const char s