0
|
1 /* |
|
2 * Copyright (c) 2009-2014 Petri Lehtinen <petri@digip.org> |
|
3 * |
|
4 * Jansson is free software; you can redistribute it and/or modify |
|
5 * it under the terms of the MIT license. See LICENSE for details. |
|
6 */ |
|
7 |
|
8 #ifndef STRBUFFER_H |
|
9 #define STRBUFFER_H |
|
10 |
|
11 typedef struct { |
|
12 char *value; |
|
13 size_t length; /* bytes used */ |
|
14 size_t size; /* bytes allocated */ |
|
15 } strbuffer_t; |
|
16 |
|
17 int strbuffer_init(strbuffer_t *strbuff); |
|
18 void strbuffer_close(strbuffer_t *strbuff); |
|
19 |
|
20 void strbuffer_clear(strbuffer_t *strbuff); |
|
21 |
|
22 const char *strbuffer_value(const strbuffer_t *strbuff); |
|
23 |
|
24 /* Steal the value and close the strbuffer */ |
|
25 char *strbuffer_steal_value(strbuffer_t *strbuff); |
|
26 |
|
27 int strbuffer_append(strbuffer_t *strbuff, const char *string); |
|
28 int strbuffer_append_byte(strbuffer_t *strbuff, char byte); |
|
29 int strbuffer_append_bytes(strbuffer_t *strbuff, const char *data, size_t size); |
|
30 |
|
31 char strbuffer_pop(strbuffer_t *strbuff); |
|
32 |
|
33 #endif |