On Sun, 9 Aug 2009, Johannes Schindelin wrote: > > + strbuf_addstr(&buf, "capabilities\n"); > > + write_in_full(helper->in, buf.buf, buf.len); > > + strbuf_reset(&buf); > > Hmm. I think you use the same paradigm three times. Maybe it is time to > heed the DRY principle and introduce a helper function? > > Maybe something like > > void fprintf_in_full(struct strbuf *buf, int fd, const char *format, ...) > { > va_list ap; > > va_start(ap, format); > strbuf_reset(buf); > strbuf_vaddf(buf, format, ap); > write_in_full(fd, buf->buf, buf->len); > va_end(ap); > } > > But I keep forgetting that there is no strbuf_vaddf() in 'next'... maybe > it is high time that I forget my promise and re-submit that series? Yup, that's exactly what I started writing, until I ran into the lack of strbuf_vaddf() and remembered that there were portability issues I don't understand with copying va_lists. -Daniel *This .sig left intentionally blank* -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html