On Thu, 2007-09-06 at 17:38 +0100, Johannes Schindelin wrote: > Hi, > > On Wed, 5 Sep 2007, Kristian Høgsberg wrote: > > > diff --git a/strbuf.c b/strbuf.c > > index fcfc05e..ed2afea 100644 > > --- a/strbuf.c > > +++ b/strbuf.c > > @@ -73,43 +74,15 @@ void strbuf_printf(struct strbuf *sb, const char *fmt, ...) > > { > > char buffer[2048]; > > va_list args; > > - int len, size = 2 * sizeof buffer; > > + int len; > > > > va_start(args, fmt); > > len = vsnprintf(buffer, sizeof(buffer), fmt, args); > > va_end(args); > > > > - if (len > sizeof(buffer)) { > > - /* > > - * Didn't fit in the buffer, but this vsnprintf at > > - * least gives us the required length back. Grow the > > - * buffer acccordingly and try again. > > - */ > > - strbuf_grow(sb, len); > > - va_start(args, fmt); > > - len = vsnprintf(sb->buf + sb->len, > > - sb->alloc - sb->len, fmt, args); > > - va_end(args); > > - } else if (len >= 0) { > > - /* > > - * The initial vsnprintf fit in the temp buffer, just > > - * copy it to the strbuf. > > - */ > > - strbuf_add(sb, buffer, len); > > - } else { > > - /* > > - * This vnsprintf sucks and just returns -1 when the > > - * buffer is too small. Keep doubling the size until > > - * it fits. > > - */ > > - while (len < 0) { > > - strbuf_grow(sb, size); > > - va_start(args, fmt); > > - len = vsnprintf(sb->buf + sb->len, > > - sb->alloc - sb->len, fmt, args); > > - va_end(args); > > - size *= 2; > > - } > > - } > > + if (len > sizeof(buffer) || len < 0) > > + die("out of buffer space\n"); > > + > > + strbuf_add(sb, buffer, len); > > } > > Really? > > (If you find the time, it would be really nice to rebase that patch series > on top of Pierre's strbuf work...) Argh, this was a screwup when I edited the patch series. The next series is based on Pierres changes. Kristian - 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