From: Philip Oakley <philipoakley@iee.email>
To: GitList <git@vger.kernel.org>
Cc: Self <philipoakley@iee.email>, Junio C Hamano <gitster@pobox.com>,
Taylor Blau <me@ttaylorr.com>,
NSENGIYUMVA WILBERFORCE <nsengiyumvawilberforce@gmail.com>
Subject: [PATCH 1/1] pretty-formats: add hard truncation, without ellipsis, options
Date: Sun, 30 Oct 2022 18:56:14 +0000 [thread overview]
Message-ID: <20221030185614.3842-2-philipoakley@iee.email> (raw)
In-Reply-To: <20221030185614.3842-1-philipoakley@iee.email>
Instead of replacing with "..", replace with the empty string "",
having adjusted the padding length calculation.
Needswork:
There are no tests for these pretty formats, before or after
this change.
Signed-off-by: Philip Oakley <philipoakley@iee.email>
---
Documentation/pretty-formats.txt | 7 ++++---
pretty.c | 18 +++++++++++++++++-
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
index 0b4c1c8d98..bd1657c032 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt
@@ -146,14 +146,15 @@ The placeholders are:
'%m':: left (`<`), right (`>`) or boundary (`-`) mark
'%w([<w>[,<i1>[,<i2>]]])':: switch line wrapping, like the -w option of
linkgit:git-shortlog[1].
-'%<(<N>[,trunc|ltrunc|mtrunc])':: make the next placeholder take at
+'%<(<N>[,trunc|ltrunc|mtrunc|Trunc|Ltrunc])':: make the next placeholder take at
least N columns, padding spaces on
the right if necessary. Optionally
- truncate at the beginning (ltrunc),
+ truncate (with ellipsis '..') at the beginning (ltrunc),
the middle (mtrunc) or the end
(trunc) if the output is longer than
- N columns. Note that truncating
+ N columns. Note that truncating with ellipsis
only works correctly with N >= 2.
+ Use (Trunc|Ltrunc) for hard truncation without ellipsis.
'%<|(<N>)':: make the next placeholder take at least until Nth
columns, padding spaces on the right if necessary
'%>(<N>)', '%>|(<N>)':: similar to '%<(<N>)', '%<|(<N>)' respectively,
diff --git a/pretty.c b/pretty.c
index 6cb363ae1c..f67844d638 100644
--- a/pretty.c
+++ b/pretty.c
@@ -857,7 +857,9 @@ enum trunc_type {
trunc_none,
trunc_left,
trunc_middle,
- trunc_right
+ trunc_right,
+ trunc_left_hard,
+ trunc_right_hard
};
struct format_commit_context {
@@ -1145,6 +1147,10 @@ static size_t parse_padding_placeholder(const char *placeholder,
c->truncate = trunc_left;
else if (starts_with(start, "mtrunc)"))
c->truncate = trunc_middle;
+ else if (starts_with(start, "Ltrunc)"))
+ c->truncate = trunc_left_hard;
+ else if (starts_with(start, "Trunc)"))
+ c->truncate = trunc_right_hard;
else
return 0;
} else
@@ -1743,6 +1749,16 @@ static size_t format_and_pad_commit(struct strbuf *sb, /* in UTF-8 */
padding - 2, len - (padding - 2),
"..");
break;
+ case trunc_left_hard:
+ strbuf_utf8_replace(&local_sb,
+ 0, len - (padding),
+ "");
+ break;
+ case trunc_right_hard:
+ strbuf_utf8_replace(&local_sb,
+ padding, len - (padding),
+ "");
+ break;
case trunc_none:
break;
}
--
2.38.1.281.g83ef3ded8d
next prev parent reply other threads:[~2022-10-30 18:56 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-30 18:56 [PATCH 0/1] extend the truncating pretty formats Philip Oakley
2022-10-30 18:56 ` Philip Oakley [this message]
2022-10-30 19:23 ` [PATCH 1/1] pretty-formats: add hard truncation, without ellipsis, options Taylor Blau
2022-10-30 22:01 ` Philip Oakley
2022-10-30 23:42 ` Taylor Blau
2022-10-30 21:41 ` [PATCH 0/1] extend the truncating pretty formats Philip Oakley
2022-11-01 22:57 ` [PATCH v2 " Philip Oakley
2022-11-01 22:57 ` [PATCH v2 1/1] pretty-formats: add hard truncation, without ellipsis, options Philip Oakley
2022-11-01 23:05 ` Philip Oakley
2022-11-02 0:45 ` Taylor Blau
2022-11-02 12:08 ` [PATCH v3] " Philip Oakley
2022-11-12 14:36 ` [PATCH v4] " Philip Oakley
2022-11-21 0:34 ` Junio C Hamano
2022-11-21 18:10 ` Philip Oakley
2022-11-22 0:57 ` Junio C Hamano
2022-11-23 14:26 ` Philip Oakley
2022-11-25 7:11 ` Junio C Hamano
2022-11-26 14:32 ` Philip Oakley
2022-11-26 22:44 ` Philip Oakley
2022-11-26 23:19 ` Junio C Hamano
2022-11-28 13:39 ` Philip Oakley
2022-11-29 0:18 ` Junio C Hamano
2022-12-07 0:24 ` Philip Oakley
2022-12-07 0:54 ` Junio C Hamano
2023-01-19 18:18 ` [PATCH v5 0/5] Pretty formats: Clarify column alignment Philip Oakley
2023-01-19 18:18 ` [PATCH v5 1/5] doc: pretty-formats: separate parameters from placeholders Philip Oakley
2023-01-19 18:18 ` [PATCH v5 2/5] doc: pretty-formats: delineate `%<|(` parameter values Philip Oakley
2023-01-19 18:18 ` [PATCH v5 3/5] doc: pretty-formats document negative column alignments Philip Oakley
2023-01-19 18:18 ` [PATCH v5 4/5] doc: pretty-formats describe use of ellipsis in truncation Philip Oakley
2023-01-19 18:18 ` [PATCH v5 5/5] doc: pretty-formats note wide char limitations, and add tests Philip Oakley
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221030185614.3842-2-philipoakley@iee.email \
--to=philipoakley@iee.email \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=me@ttaylorr.com \
--cc=nsengiyumvawilberforce@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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).