Create a new function Buf_Peel that returns the string from inside

a Buffer and frees the Buffer.
This commit is contained in:
Hartmut Brandt 2005-03-08 13:15:18 +00:00
parent 336c393fc0
commit 3509f4d713
2 changed files with 20 additions and 0 deletions

View File

@ -135,6 +135,25 @@ Buf_GetAll(Buffer *bp, size_t *len)
return (bp->buf);
}
/**
* Get the contents of a buffer and destroy the buffer. If the buffer
* is NULL, return NULL.
*
* Returns:
* the pointer to the data.
*/
char *
Buf_Peel(Buffer *bp)
{
char *ret;
if (bp == NULL)
return (NULL);
ret = bp->buf;
free(bp);
return (ret);
}
/**
* Initialize a buffer. If no initial size is given, a reasonable
* default is used.

View File

@ -82,6 +82,7 @@ size_t Buf_Size(const Buffer *);
Buffer *Buf_Init(size_t);
void Buf_Destroy(Buffer *, Boolean);
void Buf_ReplaceLastByte(Buffer *, Byte);
char *Buf_Peel(Buffer *);
void Buf_Append(Buffer *, const char []);
void Buf_AppendRange(Buffer *, const char [], const char *);