summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: bc61000)
raw | patch | inline | side by side (parent: bc61000)
author | Govind Salinas <govind@sophiasuchtig.com> | |
Fri, 21 Mar 2008 15:05:06 +0000 (10:05 -0500) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Sun, 23 Mar 2008 07:41:54 +0000 (00:41 -0700) |
This adds a %xXX format which inserts two hexdigits after %x as a byte
value in the resulting string. This can be used to add a NUL byte or any
other byte that can make machine parsing easier. It is also necessary to
use fwrite to print out the data since printf will terminate if you feed
it a NUL.
Signed-off-by: Govind Salinas <blix@sophiasuchtig.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
value in the resulting string. This can be used to add a NUL byte or any
other byte that can make machine parsing easier. It is also necessary to
use fwrite to print out the data since printf will terminate if you feed
it a NUL.
Signed-off-by: Govind Salinas <blix@sophiasuchtig.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/pretty-formats.txt | patch | blob | history | |
log-tree.c | patch | blob | history | |
pretty.c | patch | blob | history |
index 0193c3ce58de4f51a164d43e68023fdf5639a920..e8bea3e18e569e702233d0bb986fc7e52266d445 100644 (file)
- '%Creset': reset color
- '%m': left, right or boundary mark
- '%n': newline
+- '%x00': print a byte from a hex code
diff --git a/log-tree.c b/log-tree.c
index 5b2963998cc497177d913b6224799531d45dbb4a..9d54061601c2b378089a88142138ce3e0da1761e 100644 (file)
--- a/log-tree.c
+++ b/log-tree.c
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 16bfb86cd3ce6d6b471cdc313114563ca78837dc..6c04176cb877bf78ca1336d40011edcba29996ae 100644 (file)
--- a/pretty.c
+++ b/pretty.c
const struct commit *commit = c->commit;
const char *msg = commit->buffer;
struct commit_list *p;
+ int h1, h2;
/* these are independent of the commit */
switch (placeholder[0]) {
case 'n': /* newline */
strbuf_addch(sb, '\n');
return 1;
+ case 'x':
+ /* %x00 == NUL, %x0a == LF, etc. */
+ if (0 <= (h1 = hexval_table[0xff & placeholder[1]]) &&
+ h1 <= 16 &&
+ 0 <= (h2 = hexval_table[0xff & placeholder[2]]) &&
+ h2 <= 16) {
+ strbuf_addch(sb, (h1<<4)|h2);
+ return 3;
+ } else
+ return 0;
}
/* these depend on the commit */