Lines Matching refs:sb
49 pa_strbuf *sb;
51 sb = pa_xnew(pa_strbuf, 1);
52 sb->length = 0;
53 sb->head = sb->tail = NULL;
55 return sb;
58 void pa_strbuf_free(pa_strbuf *sb) {
59 pa_assert(sb);
61 while (sb->head) {
62 struct chunk *c = sb->head;
63 sb->head = sb->head->next;
67 pa_xfree(sb);
72 char *pa_strbuf_to_string(pa_strbuf *sb) {
76 pa_assert(sb);
78 e = t = pa_xmalloc(sb->length+1);
80 for (c = sb->head; c; c = c->next) {
81 pa_assert((size_t) (e-t) <= sb->length);
89 pa_assert(e == t+sb->length);
95 char *pa_strbuf_to_string_free(pa_strbuf *sb) {
98 pa_assert(sb);
99 t = pa_strbuf_to_string(sb);
100 pa_strbuf_free(sb);
106 void pa_strbuf_puts(pa_strbuf *sb, const char *t) {
108 pa_assert(sb);
111 pa_strbuf_putsn(sb, t, strlen(t));
115 void pa_strbuf_putc(pa_strbuf *sb, char c) {
116 pa_assert(sb);
118 pa_strbuf_putsn(sb, &c, 1);
122 static void append(pa_strbuf *sb, struct chunk *c) {
123 pa_assert(sb);
126 if (sb->tail) {
127 pa_assert(sb->head);
128 sb->tail->next = c;
130 pa_assert(!sb->head);
131 sb->head = c;
134 sb->tail = c;
135 sb->length += c->length;
140 void pa_strbuf_putsn(pa_strbuf *sb, const char *t, size_t l) {
143 pa_assert(sb);
153 append(sb, c);
158 size_t pa_strbuf_printf(pa_strbuf *sb, const char *format, ...) {
162 pa_assert(sb);
178 append(sb, c);
189 bool pa_strbuf_isempty(pa_strbuf *sb) {
190 pa_assert(sb);
192 return sb->length <= 0;