[PATCH] Improve git-rev-list --header output
From: Petr Baudis <hidden>
Date: 2016-06-15 22:41:59
Indent the commit header by four spaces like in the --pretty output; the commit ID is still shown unaligned. This makes the --header output actually usable for further processing. Signed-off-by: Petr Baudis <redacted> --- commit 7c99469f9820f41138e1bfe1a0f416fa6b56d09d tree ea9091df859f279e920ec0f8ca9fdc8d9d307e33 parent 441258d08a4bc12121c998e0aa112c8453eb15fc author Petr Baudis [off-list ref] Sun, 05 Jun 2005 15:24:25 +0200 committer Petr Baudis [off-list ref] Sun, 05 Jun 2005 15:24:25 +0200 rev-list.c | 26 ++++++++++++++++++++++++-- 1 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/rev-list.c b/rev-list.c
--- a/rev-list.c
+++ b/rev-list.c@@ -35,12 +35,34 @@ static void show_commit(struct commit *c putchar('\n'); if (verbose_header) { const char *buf = commit->buffer; + static char pretty_header[16384]; if (pretty_print) { - static char pretty_header[16384]; pretty_print_commit(commit->buffer, ~0, pretty_header, sizeof(pretty_header)); buf = pretty_header; + } else { + /* Indent the commit contents by four chars */ + char *buf2 = pretty_header; + char *eol; + do { + int len = -1; + + eol = strchr(buf, '\n'); + if (eol || *buf) { + strcpy(buf2, " "); + buf2 += 4; + } + if (eol) { + eol++; + len = eol - buf; + strncpy(buf2, buf, len); + buf2 += len; + buf = eol; + } else { + strcpy(buf2, buf); + } + } while (eol); } - printf("%s%c", buf, hdr_termination); + printf("%s%c", pretty_header, hdr_termination); } }
| -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor