buffer: adding buffer_cstr_release
This commit is contained in:
parent
5245d19d71
commit
710f761cc6
2 changed files with 22 additions and 0 deletions
20
buffer.c
20
buffer.c
|
|
@ -55,6 +55,26 @@ char* buffer_cstr(struct buffer *b) {
|
|||
return (char*) b->block;
|
||||
}
|
||||
|
||||
char* buffer_cstr_release(struct buffer *b) {
|
||||
|
||||
char *ret;
|
||||
|
||||
if (b->size) {
|
||||
if (b->len + 1 != b->size) {
|
||||
ret = realloc(b->block, b->len + 1);
|
||||
} else {
|
||||
ret = (char *) b->block;
|
||||
}
|
||||
b->block[b->len + 1] = '\0';
|
||||
} else {
|
||||
ret = calloc(1, 1);
|
||||
}
|
||||
|
||||
buffer_init(b);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void buffer_free(struct buffer *b) {
|
||||
|
||||
if (!b->size)
|
||||
|
|
|
|||
Reference in a new issue