buffer_need_bytes(wb, 1);
- char *s = &wb->buffer[wb->len], *end = &wb->buffer[wb->size];
+ char *s = &wb->buffer[wb->len], *start, *end = &wb->buffer[wb->size];
long len = wb->len;
- while(*txt && s != end) {
+ start = s;
+ while(*txt && s != end)
*s++ = *txt++;
- len++;
- }
+
+ len += s - start;
wb->len = len;
buffer_overflow_check(wb);
{
if(unlikely(!fmt || !*fmt)) return;
- buffer_need_bytes(wb, len+1);
+ buffer_need_bytes(wb, len + 1);
va_list args;
va_start(args, fmt);
{
if(unlikely(!fmt || !*fmt)) return;
- buffer_need_bytes(wb, 1);
+ buffer_need_bytes(wb, 2);
- size_t len = wb->size - wb->len;
+ size_t len = wb->size - wb->len - 1;
wb->len += vsnprintfz(&wb->buffer[wb->len], len, fmt, args);
{
if(unlikely(!fmt || !*fmt)) return;
- buffer_need_bytes(wb, 1);
+ buffer_need_bytes(wb, 2);
- size_t len = wb->size - wb->len, wrote;
+ size_t len = wb->size - wb->len - 1;
+ size_t wrote;
va_list args;
va_start(args, fmt);