git-svn-id: http://svn.openzap.org/svn/openzap/trunk@354 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
Anthony Minessale 2007-12-02 16:05:19 +00:00
parent 4e3bfaa971
commit 0ebf02ae82
2 changed files with 14 additions and 2 deletions

View File

@ -124,6 +124,7 @@ void zap_buffer_destroy(zap_buffer_t **buffer);
/** @} */
zap_size_t zap_buffer_zwrite(zap_buffer_t *buffer, const void *data, zap_size_t datalen);
#endif
/* For Emacs:

View File

@ -187,8 +187,7 @@ zap_size_t zap_buffer_write(zap_buffer_t *buffer, const void *data, zap_size_t d
}
actual_freespace = buffer->datalen - buffer->actually_used;
if (actual_freespace < datalen) {
if (actual_freespace < datalen && (!buffer->max_len || (buffer->datalen + datalen <= buffer->max_len))) {
memmove(buffer->data, buffer->head, buffer->used);
buffer->head = buffer->data;
buffer->actually_used = buffer->used;
@ -246,6 +245,18 @@ void zap_buffer_zero(zap_buffer_t *buffer)
buffer->head = buffer->data;
}
zap_size_t zap_buffer_zwrite(zap_buffer_t *buffer, const void *data, zap_size_t datalen)
{
zap_size_t w;
if (!(w = zap_buffer_write(buffer, data, datalen))) {
zap_buffer_zero(buffer);
return zap_buffer_write(buffer, data, datalen);
}
return w;
}
void zap_buffer_destroy(zap_buffer_t **buffer)
{
if (*buffer) {