Re: [RFC/PATCH 1/9] ref-filter: add %(refname:lalignX) option
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Jun 27, 2015, 23:43 UTC
- Message-ID
- <CACsJy8DFrNMGBTL2xpQ6aG6huNhL-ipofPySL8_P+-EQtZyAMw@mail.gmail.com>
- In-Reply-To
- <1435232596-27466-1-git-send-email-karthik.188@gmail.com>
On Thu, Jun 25, 2015 at 6:43 PM, Karthik Nayak <karthik.188@gmail.com> wrote:
Show 34 quoted lines
> Add support for %(refname:lalignX) where X is a number.
> This will print a shortened refname aligned to the left
> followed by spaces for a total length of X characters.
> If X is less than the shortened refname size, the entire
> shortened refname is printed.
>
> Mentored-by: Christian Couder <christian.couder@gmail.com>
> Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
> Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
> ---
> ref-filter.c | 17 ++++++++++++++++-
> 1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/ref-filter.c b/ref-filter.c
> index 00d06bf..299b048 100644
> --- a/ref-filter.c
> +++ b/ref-filter.c
> @@ -695,7 +695,22 @@ static void populate_value(struct ref_array_item *ref)
> int num_ours, num_theirs;
>
> formatp++;
> - if (!strcmp(formatp, "short"))
> + if (starts_with(formatp, "lalign")) {
> + const char *valp;
> + int val;
> +
> + skip_prefix(formatp, "lalign", &valp);
> + val = atoi(valp);
> + refname = shorten_unambiguous_ref(refname,
> + warn_ambiguous_refs);
> + if (val > strlen(refname)) {
> + struct strbuf buf = STRBUF_INIT;
> + strbuf_addstr(&buf, refname);
> + strbuf_addchars(&buf, ' ', val - strlen(refname));We don't forbid non-ascii characters in refname so you probably want to use utf8_width() here instead of strlen()
Show 14 quoted lines
> + free((char *)refname); > + refname = strbuf_detach(&buf, NULL); > + } > + } else if (!strcmp(formatp, "short")) > refname = shorten_unambiguous_ref(refname, > warn_ambiguous_refs); > else if (!strcmp(formatp, "track") && > -- > 2.4.4 > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
-- Duy