git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: nathan.panike@gmail.com
Cc: git@vger.kernel.org
Subject: [PATCH 2/2] pretty: allow "max-size" magic for all placeholders
Date: Fri, 23 Dec 2011 05:36:39 -0500	[thread overview]
Message-ID: <20111223103639.GB28036@sigill.intra.peff.net> (raw)
In-Reply-To: <20111223100957.GA1247@sigill.intra.peff.net>

You can now truncate a given placeholder to no more than a
certain number of characters with something like "%30s".

Signed-off-by: Jeff King <peff@peff.net>
---
This just uses the made-up "%30s" syntax, but you could easily tweak it
to handle "%.30s" or whatever.

 pretty.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/pretty.c b/pretty.c
index 7b4d098..06d96a7 100644
--- a/pretty.c
+++ b/pretty.c
@@ -1019,6 +1019,7 @@ static size_t format_commit_item(struct strbuf *sb, const char *placeholder,
 {
 	int consumed;
 	int magic_len = 0;
+	int max_len = 0;
 	size_t orig_len;
 	enum {
 		NO_MAGIC,
@@ -1045,9 +1046,22 @@ static size_t format_commit_item(struct strbuf *sb, const char *placeholder,
 		placeholder++;
 	}
 
+	if (isdigit(placeholder[0])) {
+		char *end;
+		max_len = strtoul(placeholder, &end, 10);
+		magic_len += (end - placeholder);
+		placeholder = end;
+	}
+
 	orig_len = sb->len;
 	consumed = format_commit_one(sb, placeholder, context);
 
+	if (max_len) {
+		size_t end = orig_len + max_len;
+		if (end < sb->len)
+			strbuf_setlen(sb, end);
+	}
+
 	if ((orig_len == sb->len) && magic == DEL_LF_BEFORE_EMPTY) {
 		while (sb->len && sb->buf[sb->len - 1] == '\n')
 			strbuf_setlen(sb, sb->len - 1);
-- 
1.7.8.1.3.gba11d

  parent reply	other threads:[~2011-12-23 10:36 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-20 22:07 [PATCH] Specify a precision for the length of a subject string Nathan W. Panike
2011-12-20 22:15 ` Thomas Rast
2011-12-20 22:50   ` Nathan Panike
2011-12-21  4:38 ` Jeff King
2011-12-21 14:51   ` Nathan Panike
2011-12-23 10:09     ` Jeff King
2011-12-23 10:35       ` Jeff King
2011-12-23 20:58         ` Junio C Hamano
2011-12-23 23:02           ` Jeff King
2011-12-23 23:03             ` Jeff King
2011-12-23 10:35       ` [PATCH 1/2] pretty: refactor --format "magic" placeholders Jeff King
2011-12-23 10:36       ` Jeff King [this message]
2011-12-21 11:26 ` [PATCH] Specify a precision for the length of a subject string Andreas Schwab
2011-12-21 14:53   ` Nathan Panike
2011-12-23  9:41     ` Miles Bader

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=20111223103639.GB28036@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=nathan.panike@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).