- struct string *string = (struct string *)data;
- if(string->length + size > string->size)
- {
- if(string->length == 0)
- string->size = 16;
- else
- string->size *= 2;
-
- string->buffer = realloc(string->buffer, string->size);
- if(!string->buffer)
- return -1;
-
- memset(string->buffer + string->length, 0,
- string->size - string->length);
- }
-
- memcpy(string->buffer + string->length, buffer, size);
- string->length += size;
-
- return 0;