Add a function to slice the buffer.

This commit is contained in:
Jef Driesen 2009-11-16 08:14:19 +00:00
parent 12754e05f4
commit 21832851af
3 changed files with 20 additions and 0 deletions

View File

@ -231,6 +231,22 @@ dc_buffer_prepend (dc_buffer_t *buffer, const unsigned char data[], size_t size)
}
int
dc_buffer_slice (dc_buffer_t *buffer, size_t offset, size_t size)
{
if (buffer == NULL)
return 0;
if (offset + size >= buffer->size)
return 0;
buffer->offset += offset;
buffer->size = size;
return 1;
}
size_t
dc_buffer_get_size (dc_buffer_t *buffer)
{

View File

@ -49,6 +49,9 @@ dc_buffer_append (dc_buffer_t *buffer, const unsigned char data[], size_t size);
int
dc_buffer_prepend (dc_buffer_t *buffer, const unsigned char data[], size_t size);
int
dc_buffer_slice (dc_buffer_t *buffer, size_t offset, size_t size);
size_t
dc_buffer_get_size (dc_buffer_t *buffer);

View File

@ -5,6 +5,7 @@ dc_buffer_reserve
dc_buffer_resize
dc_buffer_append
dc_buffer_prepend
dc_buffer_slice
dc_buffer_get_size
dc_buffer_get_data