From 1367b12ad623e28546ba40c435015d94e7fbb248 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Wed, 24 Mar 2010 22:51:52 -0400 Subject: [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends Also update the documentation text and add a test. Signed-off-by: Eli Barzilay Signed-off-by: Junio C Hamano --- Documentation/pretty-formats.txt | 1 + pretty.c | 4 ++++ t/t6006-rev-list-format.sh | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index 1686a54d22..bd760d3bd1 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -123,6 +123,7 @@ The placeholders are: - '%s': subject - '%f': sanitized subject line, suitable for a filename - '%b': body +- '%B': raw body (unwrapped subject and body) - '%N': commit notes - '%gD': reflog selector, e.g., `refs/stash@\{1\}` - '%gd': shortened reflog selector, e.g., `stash@\{1\}` diff --git a/pretty.c b/pretty.c index 6ba3da89b7..14c9568c54 100644 --- a/pretty.c +++ b/pretty.c @@ -797,6 +797,10 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder, case 'e': /* encoding */ strbuf_add(sb, msg + c->encoding.off, c->encoding.len); return 1; + case 'B': /* raw body */ + /* message_off is always left at the initial newline */ + strbuf_addstr(sb, msg + c->message_off + 1); + return 1; } /* Now we need to parse the commit message. */ diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh index b0047d3c6b..5d15f18366 100755 --- a/t/t6006-rev-list-format.sh +++ b/t/t6006-rev-list-format.sh @@ -101,6 +101,15 @@ commit 131a310eb913d107dd3c09a65d1651175898735d commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873 EOF +test_format raw-body %B <<'EOF' +commit 131a310eb913d107dd3c09a65d1651175898735d +changed foo + +commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873 +added foo + +EOF + test_format colors %Credfoo%Cgreenbar%Cbluebaz%Cresetxyzzy <<'EOF' commit 131a310eb913d107dd3c09a65d1651175898735d foobarbazxyzzy