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 <blix@xxxxxxxxxxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html