git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] git-log --format: Add %B tag with %B(x) option
@ 2009-09-17 22:47 Johannes Gilger
  2009-09-17 23:27 ` Junio C Hamano
  0 siblings, 1 reply; 18+ messages in thread
From: Johannes Gilger @ 2009-09-17 22:47 UTC (permalink / raw)
  To: Git Mailing List; +Cc: Johannes Gilger

Since one can simply use spaces to indent any other --pretty field we
should have an option to do that with the body too.

Also the %B flag strips the trailing newlines, to enable more compact
display.

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
---
Hey list,

in my never-ending quest to beautify my personal log output I just whipped this 
up. Maybe you like it too or at least can tell me what's wrong with it ;)

Please CC me as I'm not on the list anymore (but keep up through Gmane though).

 Documentation/pretty-formats.txt |    2 ++
 pretty.c                         |   13 +++++++++++++
 2 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
index 2a845b1..c04f118 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt
@@ -123,6 +123,8 @@ The placeholders are:
 - '%s': subject
 - '%f': sanitized subject line, suitable for a filename
 - '%b': body
+- '%B': body without trailing newline
+- '%B(x)': body indented with x spaces
 - '%Cred': switch color to red
 - '%Cgreen': switch color to green
 - '%Cblue': switch color to blue
diff --git a/pretty.c b/pretty.c
index f5983f8..6d530e1 100644
--- a/pretty.c
+++ b/pretty.c
@@ -735,6 +735,19 @@ static size_t format_commit_item(struct strbuf *sb, const char *placeholder,
 	case 'b':	/* body */
 		strbuf_addstr(sb, msg + c->body_off);
 		return 1;
+	case 'B':
+		if (placeholder[1] == '(') {
+			const char *body = msg + c->body_off;
+			const char *end = strchr(placeholder + 2, ')');
+			if(!end)
+				return 0;
+			pp_remainder(CMIT_FMT_MEDIUM, &body, sb, atoi(placeholder + 2));
+			strbuf_rtrim(sb);
+			return end - placeholder + 1;
+		}
+		strbuf_addstr(sb, msg + c->body_off);
+		strbuf_rtrim(sb);
+		return 1;
 	}
 	return 0;	/* unknown placeholder */
 }
-- 
1.6.5.rc1.20.geb7d9

^ permalink raw reply related	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2009-10-10  1:02 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-17 22:47 [PATCH] git-log --format: Add %B tag with %B(x) option Johannes Gilger
2009-09-17 23:27 ` Junio C Hamano
2009-09-18 18:00   ` [PATCHv2] " Johannes Gilger
2009-09-18 19:12     ` Junio C Hamano
2009-09-19  9:58       ` [PATCHv3] " Johannes Gilger
2009-09-22 19:41         ` Junio C Hamano
2009-09-22 21:30           ` [PATCHv4] git-log --format: Add %B tag with %B(n) option Johannes Gilger
2009-09-23 20:34             ` [PATCH 0/3] Add a pretty format to rewrapping/indenting commit messages Johannes Schindelin
2009-09-23 20:34               ` [PATCH 1/3] print_wrapped_text(): allow hard newlines Johannes Schindelin
2009-09-23 20:34                 ` [PATCH 2/3] Add strbuf_add_wrapped_text() to utf8.[ch] Johannes Schindelin
2009-09-23 20:34                   ` [PATCH 3/3] Add "%w" to pretty formats, which rewraps the commit message Johannes Schindelin
2009-09-23 21:00                     ` Johannes Gilger
2009-09-23 23:19                       ` Junio C Hamano
2009-10-05  6:25                         ` Junio C Hamano
2009-09-24  0:00                 ` [PATCH 1/3] print_wrapped_text(): allow hard newlines Linus Torvalds
2009-09-24  0:19                   ` Johannes Schindelin
2009-09-25  8:21                   ` Johannes Schindelin
2009-10-10  0:57             ` [PATCHv4] git-log --format: Add %B tag with %B(n) option Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).