22#ifndef LIBDPKG_VARBUF_H
23#define LIBDPKG_VARBUF_H
61 explicit varbuf(
size_t _size = 0);
63 void init(
size_t _size = 0);
68 void operator()(
int c);
69 void operator()(const
char *s);
74#define VARBUF_INIT { 0, 0, NULL }
76#define VARBUF_OBJECT (struct varbuf)VARBUF_INIT
91#define varbuf_set_str(v, s) varbuf_set_buf(v, s, strlen(s))
92#define varbuf_set_strn(v, s, n) varbuf_set_buf(v, s, strnlen(s, n))
98#define varbuf_add_str(v, s) varbuf_add_buf(v, s, strlen(s))
99#define varbuf_add_strn(v, s, n) varbuf_add_buf(v, s, strnlen(s, n))
128varbuf::varbuf(
size_t _size)
140varbuf::init(
size_t _size)
158varbuf::fmt(
const char *_fmt, ...)
163 va_start(
args, _fmt);
171varbuf::vfmt(
const char *_fmt, va_list va)
177varbuf::operator()(
int c)
183varbuf::operator()(
const char *s)
void * args[20]
Definition ehandle.c:89
#define DPKG_BEGIN_DECLS
Definition macros.h:164
#define DPKG_ATTR_VPRINTF(n)
Definition macros.h:118
#define DPKG_ATTR_PRINTF(n)
Definition macros.h:117
#define DPKG_END_DECLS
Definition macros.h:165
void varbuf_free(struct varbuf *v)
Definition varbuf.c:333
void varbuf_dup_char(struct varbuf *v, int c, size_t n)
Definition varbuf.c:140
void varbuf_add_dir(struct varbuf *v, const char *dirname)
Definition varbuf.c:161
const char * varbuf_rollback_start(struct varbuf_state *vs)
Definition varbuf.c:297
#define varbuf_add_str(v, s)
Definition varbuf.h:98
void varbuf_add_varbuf(struct varbuf *v, const struct varbuf *other)
Definition varbuf.c:123
void varbuf_trim_varbuf_prefix(struct varbuf *v, struct varbuf *prefix)
Definition varbuf.c:212
void varbuf_destroy(struct varbuf *v)
Definition varbuf.c:324
int varbuf_printf(struct varbuf *v, const char *fmt,...) DPKG_ATTR_PRINTF(2)
Definition varbuf.c:262
char * varbuf_detach(struct varbuf *v)
Definition varbuf.c:309
void varbuf_map_char(struct varbuf *v, int c_src, int c_dst)
Definition varbuf.c:151
void varbuf_rollback(struct varbuf_state *vs)
Definition varbuf.c:282
void varbuf_add_buf(struct varbuf *v, const void *s, size_t size)
Definition varbuf.c:169
void varbuf_init(struct varbuf *v, size_t size)
Definition varbuf.c:45
void varbuf_grow(struct varbuf *v, size_t need_size)
Definition varbuf.c:58
void varbuf_snapshot(struct varbuf *v, struct varbuf_state *vs)
Definition varbuf.c:275
void varbuf_reset(struct varbuf *v)
Definition varbuf.c:93
void varbuf_set_varbuf(struct varbuf *v, struct varbuf *other)
Definition varbuf.c:117
struct varbuf * varbuf_new(size_t size)
Definition varbuf.c:34
size_t varbuf_rollback_len(struct varbuf_state *vs)
Definition varbuf.c:288
bool varbuf_has_suffix(struct varbuf *v, struct varbuf *suffix)
Definition varbuf.c:194
bool varbuf_has_prefix(struct varbuf *v, struct varbuf *prefix)
Definition varbuf.c:180
void varbuf_trunc(struct varbuf *v, size_t used_size)
Definition varbuf.c:81
void varbuf_set_buf(struct varbuf *v, const void *buf, size_t size)
Definition varbuf.c:110
void varbuf_trim_char_prefix(struct varbuf *v, int prefix)
Definition varbuf.c:222
const char * varbuf_str(struct varbuf *v)
Definition varbuf.c:101
int varbuf_vprintf(struct varbuf *v, const char *fmt, va_list va) DPKG_ATTR_VPRINTF(2)
Definition varbuf.c:238
void varbuf_add_char(struct varbuf *v, int c)
Definition varbuf.c:132
struct varbuf * v
Definition varbuf.h:113
size_t used
Definition varbuf.h:114
varbuf_init must be called exactly once before the use of each varbuf (including before any call to v...
Definition varbuf.h:56
size_t used
Definition varbuf.h:57
char * buf
Definition varbuf.h:58
size_t size
Definition varbuf.h:57