[PATCH v2] pretty.c: add %z specifier.
From: Govind Salinas <hidden>
Date: 2016-06-15 22:44:24
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
This adds a %z format which prints out a null character. This allows for easier machine parsing of multiline data. It is also necessary to use fwrite to print out the data since printf will terminate at a null. Signed-off-by: Govind Salinas <redacted> --- Documentation/pretty-formats.txt | 1 + log-tree.c | 6 ++++-- pretty.c | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
index 0193c3c..f4b3134 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt@@ -123,3 +123,4 @@ The placeholders are: - '%Creset': reset color - '%m': left, right or boundary mark - '%n': newline +- '%z': null character
diff --git a/log-tree.c b/log-tree.c
index 608f697..3bb6e49 100644
--- a/log-tree.c
+++ b/log-tree.c@@ -308,8 +308,10 @@ void show_log(struct rev_info *opt, const char *sep) if (opt->show_log_size) printf("log size %i\n", (int)msgbuf.len); - if (msgbuf.len) - printf("%s%s%s", msgbuf.buf, extra, sep); + if (msgbuf.len) { + fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout); + printf("%s%s", extra, sep); + } strbuf_release(&msgbuf); }
diff --git a/pretty.c b/pretty.c
index 703f521..fd155ec 100644
--- a/pretty.c
+++ b/pretty.c@@ -478,6 +478,9 @@ static size_t format_commit_item(struct strbuf*sb, const char *placeholder, case 'n': /* newline */ strbuf_addch(sb, '\n'); return 1; + case 'z': /* null */ + strbuf_addch(sb, '\0'); + return 1; } /* these depend on the commit */ -- 1.5.4.4.552.g1d39e.dirty