Thread (4 messages) flat view 4 messages, 3 authors, 2016-06-15

Re: [PATCH] pretty.c: add %z specifier.

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:24

Possibly related (same subject, not in this thread)

Jeff King [off-list ref] writes:
On Thu, Mar 20, 2008 at 09:48:16PM -0700, Junio C Hamano wrote:
quoted
quoted
+	case 'z':		/* null */
+		strbuf_addch(sb, '\0');
+		return 1;
 	}

 	/* these depend on the commit */
I do not like this at all.  Why aren't we doing %XX (2 hexadecimal digits
for an octet)?
Because %ad is already taken? :)

%x* is still available, though, so maybe %x00?
Perhaps, but before I forget.

My much bigger niggle about the "--pretty=format:<>" code I have is that
the "log" machinery does not change the usual record "delimiter" to record
"terminator" when --pretty=format:<> is in effect.

The "log" family generally treats LF/NUL as record delimiter, not
terminator, and it is by a very good conscious design.  When you are
looking at the output from "git log -2", you would want to have a
delimiting LF between the first commit and the second commit, but you do
not want an extra LF after the second commit.

However, when "--pretty=format:<>" is in effect, it is inconvenient that
the machinery inserts a LF between each record but not at the end.

    $ git log -2 --pretty=format:%s

may look sane when the pager immediately returns the control to you, but
it is not really.  To view it:

    $ git log -2 --pretty=format:%s | cat

This would show that there is no LF after the final output, which is quite
bad.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help