From: Jeff King Date: Thu, 29 Dec 2011 19:23:29 GMT Subject: Re: git-log --pretty=format:'[%x00]%w(0,0,1)' doesn't print NUL and "]" Message-ID: <20111229192328.GA18723@sigill.intra.peff.net> In-Reply-To: On Fri, Dec 30, 2011 at 03:41:20AM +0900, Tanaka Akira wrote: > I found that git-log doesn't print characters in --pretty option as follows. > > % git log --pretty=format:'[%x00]%w(0,0,1)' |od -c > 0000000 [ \n [ \n [ \n [ \n [ \n [ \n [ \n [ \n > * > 0022320 [ \n [ \n [ \n [ > 0022327 > > I think NUL and "]" should be printed. I think there is a bug in strbuf_add_indented_text, which uses strchrnul, even though a strbuf may contain literal NULs. Although one could argue that trying to wrap a NUL is questionable (after all, what is its character width?), the current behavior seems pretty wrong. I think the whole wrapping callchain needs to be adjusted to handle arbitrary bytes (there are also several checks in strbuf_add_wrapped_text for NUL terminators). -Peff