]>
Commit | Line | Data |
---|---|---|
bb742ede VM |
1 | /* |
2 | * Copyright (C) 2009-2011 the libgit2 contributors | |
3 | * | |
4 | * This file is part of libgit2, distributed under the GNU GPL v2 with | |
5 | * a Linking Exception. For full terms see the included COPYING file. | |
6 | */ | |
afeecf4f VM |
7 | #ifndef INCLUDE_buffer_h__ |
8 | #define INCLUDE_buffer_h__ | |
9 | ||
10 | #include "common.h" | |
11 | ||
12 | typedef struct { | |
13 | char *ptr; | |
14 | ssize_t asize, size; | |
15 | } git_buf; | |
16 | ||
17 | #define GIT_BUF_INIT {NULL, 0, 0} | |
18 | ||
19 | int git_buf_grow(git_buf *buf, size_t target_size); | |
20 | int git_buf_oom(const git_buf *buf); | |
21 | void git_buf_putc(git_buf *buf, char c); | |
22 | void git_buf_put(git_buf *buf, const char *data, size_t len); | |
23 | void git_buf_puts(git_buf *buf, const char *string); | |
24 | void git_buf_printf(git_buf *buf, const char *format, ...) GIT_FORMAT_PRINTF(2, 3); | |
25 | const char *git_buf_cstr(git_buf *buf); | |
26 | void git_buf_free(git_buf *buf); | |
b87600cb | 27 | void git_buf_clear(git_buf *buf); |
c7c30513 | 28 | void git_buf_consume(git_buf *buf, const char *end); |
afeecf4f VM |
29 | |
30 | #define git_buf_PUTS(buf, str) git_buf_put(buf, str, sizeof(str) - 1) | |
31 | ||
32 | #endif |