#include #include #include #include "ftsbench.h" void sb_add(StringBuf *b, char *s, int length) { if ( length <=0 ) length = strlen(s); if ( b->strlen + length + 1 >= b->length ) { if ( b->str == NULL || b->length == 0 ) { b->length = (length + 1)*4; b->str = (char*)malloc( sizeof(char) * b->length ); } else { do b->length *= 2; while( b->strlen + length + 1 >= b->length ); b->str = (char*)realloc( b->str, sizeof(char) * b->length ); } if (!b->str) { fprintf(stderr,"Not enough memory (%d bytes)\n", b->length); exit(1); } } memcpy(b->str + b->strlen, s, length); b->strlen += length; b->str[ b->strlen ] = '\0'; }