version 1.16, 2010/07/28 09:07:11 |
version 1.17, 2010/09/08 15:13:39 |
|
|
{ |
{ |
u_char *bp; |
u_char *bp; |
|
|
bp = b->cb_buf + b->cb_len; |
if (SIZE_LEFT(b) == 0) |
if (bp == (b->cb_buf + b->cb_size)) { |
|
/* extend */ |
|
buf_grow(b, BUF_INCR); |
buf_grow(b, BUF_INCR); |
|
bp = b->cb_buf + b->cb_len; |
/* the buffer might have been moved */ |
|
bp = b->cb_buf + b->cb_len; |
|
} |
|
*bp = (u_char)c; |
*bp = (u_char)c; |
b->cb_len++; |
b->cb_len++; |
} |
} |
|
|
buf_append(BUF *b, const void *data, size_t len) |
buf_append(BUF *b, const void *data, size_t len) |
{ |
{ |
size_t left, rlen; |
size_t left, rlen; |
u_char *bp, *bep; |
u_char *bp; |
|
|
bp = b->cb_buf + b->cb_len; |
left = SIZE_LEFT(b); |
bep = b->cb_buf + b->cb_size; |
|
left = bep - bp; |
|
rlen = len; |
rlen = len; |
|
|
if (left < len) { |
if (left < len) |
buf_grow(b, len - left); |
buf_grow(b, len - left); |
bp = b->cb_buf + b->cb_len; |
bp = b->cb_buf + b->cb_len; |
} |
|
|
|
memcpy(bp, data, rlen); |
memcpy(bp, data, rlen); |
b->cb_len += rlen; |
b->cb_len += rlen; |
|
|