All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: "Kyle J. McKay" <mackyle@gmail.com>
Cc: Git mailing list <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 2/5] pretty: allow formatting names as initials
Date: Thu, 29 Sep 2016 04:36:54 -0400	[thread overview]
Message-ID: <20160929083654.nofgkn6kwb7bavzk@sigill.intra.peff.net> (raw)
In-Reply-To: <20160929083315.vwb3aurwbyjwlkjn@sigill.intra.peff.net>

Initials are shorter and often unique enough in a
per-project setting, so they can be used to give a more
informative version of --oneline.

The 'S' in the placeholder is for "short" (and 's' is
already taken by DATE_SHORT), but obviously that's pretty
arcane.

Possibly there should be more customization of initials,
asking for only 2-letter initials, etc.

Signed-off-by: Jeff King <peff@peff.net>
---
When I first tested it with "git log --format=%aS" I had to wonder "who
the heck is ntnd?". So using only the first-and-last would match the git
project's practice better, at least.

 pretty.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/pretty.c b/pretty.c
index c532c17..de62405 100644
--- a/pretty.c
+++ b/pretty.c
@@ -674,6 +674,23 @@ static int mailmap_name(const char **email, size_t *email_len,
 	return mail_map->nr && map_user(mail_map, email, email_len, name, name_len);
 }
 
+static void format_initials(struct strbuf *out, const char *name, size_t len)
+{
+	int initial = 1;
+	size_t i;
+
+	for (i = 0; i < len; i++) {
+		char c = name[i];
+		if (isspace(c)) {
+			initial = 1;
+			continue;
+		}
+		if (initial && isalpha(c))
+			strbuf_addch(out, tolower(c));
+		initial = 0;
+	}
+}
+
 static size_t format_person_part(struct strbuf *sb, char part,
 				 const char *msg, int len,
 				 const struct date_mode *dmode)
@@ -702,6 +719,10 @@ static size_t format_person_part(struct strbuf *sb, char part,
 		strbuf_add(sb, mail, maillen);
 		return placeholder_len;
 	}
+	if (part == 'S') {
+		format_initials(sb, name, namelen);
+		return placeholder_len;
+	}
 
 	if (!s.date_begin)
 		goto skip;
-- 
2.10.0.566.g5365f87


  parent reply	other threads:[~2016-09-29  8:38 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-29  5:34 [PATCH/RFC] git log --oneline alternative with dates, times and initials Kyle J. McKay
2016-09-29  8:33 ` Jeff King
2016-09-29  8:33   ` [PATCH 1/5] pretty: allow formatting DATE_SHORT Jeff King
2016-09-30  6:17     ` Jacob Keller
2016-09-30 10:56       ` SZEDER Gábor
2016-09-30 22:04         ` Jacob Keller
2016-10-01  9:18         ` Jeff King
2016-09-29  8:36   ` Jeff King [this message]
2016-09-29 17:31     ` [PATCH 2/5] pretty: allow formatting names as initials Junio C Hamano
2016-09-29 17:32       ` Jeff King
2016-09-29  8:37   ` [PATCH 3/5] graph: fix extra spaces in graph_padding_line Jeff King
2016-09-29  8:38   ` [PATCH 4/5] graph: helper functions for printing commit header Jeff King
2016-09-29  8:38   ` [PATCH 5/5] log: add --commit-header option Jeff King
2016-09-29 17:49     ` Junio C Hamano
2016-09-29 18:31       ` Jeff King
2016-09-29 11:00   ` [PATCH/RFC] git log --oneline alternative with dates, times and initials Kyle J. McKay
2016-09-29 12:52     ` Jeff King
2016-09-29 17:38       ` Junio C Hamano
2016-09-29 18:30         ` Jeff King
2016-09-29 18:50           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160929083654.nofgkn6kwb7bavzk@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=mackyle@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.