aboutsummaryrefslogtreecommitdiff
path: root/pretty.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2011-12-16 06:40:24 -0500
committerJunio C Hamano <gitster@pobox.com>2011-12-16 13:00:15 -0800
commitcd1957f5fc6ecc5ae557246126d9e74c029ccd61 (patch)
tree0efe0b7c1d87b3c038fd55696a53a2a76db30148 /pretty.c
parent7b6c5836cf02999955b68c79f1cf2d13040acbc3 (diff)
downloadgit-cd1957f5fc6ecc5ae557246126d9e74c029ccd61.tar.gz
git-cd1957f5fc6ecc5ae557246126d9e74c029ccd61.tar.xz
pretty: give placeholders to reflog identity
When doing a reflog walk, you can get some information about the reflog (such as the subject line), but not the identity information (i.e., name and email). Let's make those available, mimicing the options for author and committer identity. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pretty.c')
-rw-r--r--pretty.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/pretty.c b/pretty.c
index 230fe1cc8..1580299d4 100644
--- a/pretty.c
+++ b/pretty.c
@@ -822,6 +822,23 @@ static void rewrap_message_tail(struct strbuf *sb,
c->indent2 = new_indent2;
}
+static int format_reflog_person(struct strbuf *sb,
+ char part,
+ struct reflog_walk_info *log,
+ enum date_mode dmode)
+{
+ const char *ident;
+
+ if (!log)
+ return 2;
+
+ ident = get_reflog_ident(log);
+ if (!ident)
+ return 2;
+
+ return format_person_part(sb, part, ident, strlen(ident), dmode);
+}
+
static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
void *context)
{
@@ -963,6 +980,14 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
if (c->pretty_ctx->reflog_info)
get_reflog_message(sb, c->pretty_ctx->reflog_info);
return 2;
+ case 'n':
+ case 'N':
+ case 'e':
+ case 'E':
+ return format_reflog_person(sb,
+ placeholder[1],
+ c->pretty_ctx->reflog_info,
+ c->pretty_ctx->date_mode);
}
return 0; /* unknown %g placeholder */
case 'N':