Revert "vreportf: avoid intermediate buffer"
authorJeff King <peff@peff.net>
Wed, 11 Jan 2017 14:02:03 +0000 (09:02 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Jan 2017 21:52:00 +0000 (13:52 -0800)
commitb5a9e435c6dfb40df0a27521c1c6590c8f68ffb2
tree63ef05a347ed0a57a03762c5af7d27c799b4b2fb
parent0b65a8dbdb38962e700ee16776a3042beb489060
Revert "vreportf: avoid intermediate buffer"

This reverts commit f4c3edc0b156362a92bf9de4f0ec794e90a757fc.

The purpose of that commit was to let us write errors of
arbitrary length to stderr by skipping the intermediate
buffer and sending our varargs straight to fprintf. That
works, but it comes with a downside: we do not get access to
the varargs before they are sent to stderr.

On balance, it's not a good tradeoff. Error messages larger
than our 4K buffer are quite uncommon, and we've lost the
ability to make any modifications to the output (e.g., to
remove non-printable characters).

The only way to have both would be one of:

  1. Write into a dynamic buffer. But this is a bad idea for
     a low-level function that may be called when malloc()
     has failed.

  2. Do our own printf-format varargs parsing. This is too
     complex to be worth the trouble.

Let's just revert that change and go back to a fixed buffer.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
usage.c