Lines Matching defs:buf

101 buf_init(buffer *buf)
103 buf->len = 0;
104 buf->cap = 128;
105 buf->data = xmalloc(buf->cap);
106 buf->data[0] = '\0';
110 buf_done(buffer *buf)
112 free(buf->data);
116 buf_add_mem(buffer *buf, const char *s, size_t n)
118 while (buf->len + n + 1 >= buf->cap) {
119 buf->cap *= 2;
120 buf->data = xrealloc(buf->data, buf->cap);
123 memcpy(buf->data + buf->len, s, n);
124 buf->len += n;
125 buf->data[buf->len] = '\0';
130 buf_add_char(buffer *buf, char c)
132 buf_add_mem(buf, &c, 1);
140 buf_add(buffer *buf, const char *s)
142 buf_add_mem(buf, s, strlen(s));
146 buf_add_int(buffer *buf, int n)
151 buf_add(buf, num);
163 type_name_of_function(buffer *buf, const type_t *tp)
167 buf_add(buf, "(");
172 buf_add(buf, "void");
174 buf_add(buf, sep), sep = ", ";
175 buf_add(buf, type_name(param->s_type));
182 buf_add(buf, "void");
184 buf_add(buf, sep), sep = ", ";
185 buf_add(buf, type_name(*argtype));
190 buf_add(buf, sep);
191 buf_add(buf, "...");
193 buf_add(buf, ") returning ");
194 buf_add(buf, type_name(tp->t_subt));
198 type_name_of_struct_or_union(buffer *buf, const type_t *tp)
200 buf_add(buf, " ");
204 buf_add(buf, "typedef ");
205 buf_add(buf, tp->u.sou->sou_first_typedef->s_name);
207 buf_add(buf, tp->u.sou->sou_tag->s_name);
210 buf_add(buf, tp->t_isuniqpos ? "*anonymous*" : tp->t_tag->h_name);
215 type_name_of_enum(buffer *buf, const type_t *tp)
217 buf_add(buf, " ");
221 buf_add(buf, "typedef ");
222 buf_add(buf, tp->u.enumer->en_first_typedef->s_name);
224 buf_add(buf, tp->u.enumer->en_tag->s_name);
227 buf_add(buf, tp->t_isuniqpos ? "*anonymous*" : tp->t_tag->h_name);
232 type_name_of_array(buffer *buf, const type_t *tp)
234 buf_add(buf, "[");
237 buf_add(buf, "unknown_size");
239 buf_add_int(buf, tp->u.dimension);
241 buf_add_int(buf, tp->t_dim);
243 buf_add(buf, "]");
244 buf_add(buf, " of ");
245 buf_add(buf, type_name(tp->t_subt));
252 buffer buf;
261 buf_init(&buf);
263 buf_add(&buf, "const ");
265 buf_add(&buf, "volatile ");
268 buf_add(&buf, "noreturn ");
273 buf_add(&buf, "incomplete ");
275 buf_add(&buf, tspec_name(t));
279 buf_add(&buf, ":");
280 buf_add_int(&buf, (int)tp->t_bit_field_width);
286 buf_add(&buf, " to ");
287 buf_add(&buf, type_name(tp->t_subt));
290 type_name_of_enum(&buf, tp);
294 type_name_of_struct_or_union(&buf, tp);
297 type_name_of_array(&buf, tp);
300 type_name_of_function(&buf, tp);
306 name = intern(buf.data);
307 buf_done(&buf);