Re: What's cooking in git.git (Jan 2017, #02; Sun, 15)
- From
Jeff King <peff@peff.net>
- Date
- Jan 17, 2017, 07:52 UTC
- Message-ID
- <20170117075254.h4nnnj2alricotcy@sigill.intra.peff.net>
- In-Reply-To
- <CA+P7+xqi8cXK8ZEdvy3U9jJ9wZwkGLYNR0j_xvvCJwq12B4G8g@mail.gmail.com>
On Mon, Jan 16, 2017 at 05:33:44PM -0800, Jacob Keller wrote:
Show 8 quoted lines
> > I am certainly sympathetic to the idea that the "?" is ugly and > > potentially confusing. But I think it's at least a step forward for this > > particular example. > > Would it be possible to convert the CR to a literal \r printing? Since > it's pretty common to show these characters as slash-escaped? (Or is > that too much of a Unix world thing?) I know I'd find \r less > confusing than '?'
I discussed this in the original commit message.
Yes, it's possible, but it's a little tricky. We want to fprintf() the whole thing as a unit (to increase the chances of it being done in an atomic write()). We don't want to use a dynamic buffer, since we might be called from a signal handler, or when malloc has failed, etc.
So I tried to stick to something that could reliably done in place. We could probably get by with 2 static buffers and copy from one to the other (if stack space is an issue, the current one is 4K, which is probably excessively large anyway).
Mostly I just assumed that it was highly unlikely anybody would see this escaping in the first place. So I tried to go with the simplest solution.
-Peff