summaryrefslogtreecommitdiff
path: root/pretty.c
diff options
context:
space:
mode:
authorAnders Waldenborg <anders@0x63.nu>2019-01-28 21:33:36 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-01-29 18:03:32 (GMT)
commitfd2015b323d283c73346d70d2285a927650bb60a (patch)
tree5b9c6bfd56a19a636c6a356b3cfddb3e3dd273b4 /pretty.c
parentd9b936db5226ed4b87d42a2c91324adc50c768b6 (diff)
downloadgit-fd2015b323d283c73346d70d2285a927650bb60a.zip
git-fd2015b323d283c73346d70d2285a927650bb60a.tar.gz
git-fd2015b323d283c73346d70d2285a927650bb60a.tar.bz2
strbuf: separate callback for strbuf_expand:ing literals
Expanding '%n' and '%xNN' is generic functionality, so extract that from the pretty.c formatter into a callback that can be reused. No functional change intended Signed-off-by: Anders Waldenborg <anders@0x63.nu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pretty.c')
-rw-r--r--pretty.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/pretty.c b/pretty.c
index fe73916..2c66698 100644
--- a/pretty.c
+++ b/pretty.c
@@ -1137,9 +1137,13 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
const char *msg = c->message;
struct commit_list *p;
const char *arg;
- int ch;
+ size_t res;
/* these are independent of the commit */
+ res = strbuf_expand_literal_cb(sb, placeholder, NULL);
+ if (res)
+ return res;
+
switch (placeholder[0]) {
case 'C':
if (starts_with(placeholder + 1, "(auto)")) {
@@ -1158,16 +1162,6 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
*/
return ret;
}
- case 'n': /* newline */
- strbuf_addch(sb, '\n');
- return 1;
- case 'x':
- /* %x00 == NUL, %x0a == LF, etc. */
- ch = hex2chr(placeholder + 1);
- if (ch < 0)
- return 0;
- strbuf_addch(sb, ch);
- return 3;
case 'w':
if (placeholder[1] == '(') {
unsigned long width = 0, indent1 = 0, indent2 = 0;