git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC/PATCH 1/9] ref-filter: add %(refname:lalignX) option

From
Karthik Nayak <karthik.188@gmail.com>
Date
Jun 25, 2015, 11:43 UTC
Message-ID
<1435232596-27466-1-git-send-email-karthik.188@gmail.com>
In-Reply-To
<CAOLa=ZSsVqFy4OrSt295qAZdjKTC7z44EVsx3cPEd2jb8Y-sHw@mail.gmail.com>

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));
+					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
Previous: Karthik NayakNext: Karthik Nayak
Message 2 of 23 in “port tag.c to use ref-filter library”
  1. 0/9 port tag.c to use ref-filter libraryKarthik Nayak, Jun 25, 2015
  2. 1/9 ref-filter: add %(refname:lalignX) optionKarthik Nayak, Jun 25, 2015
  3. 2/9 ref-filter: add option to filter only tagsKarthik Nayak, Jun 25, 2015
  4. 3/9 ref-filter: support printing N lines from tag annotationKarthik Nayak, Jun 25, 2015
  5. 4/9 ref-filter: add support to sort by versionKarthik Nayak, Jun 25, 2015
  6. Duy NguyenJul 12, 2015
  7. Karthik NayakJul 12, 2015
  8. 5/9 ref-filter: add option to match literal patternKarthik Nayak, Jun 25, 2015
  9. Karthik NayakJun 26, 2015
  10. Junio C HamanoJun 29, 2015
  11. Karthik NayakJun 30, 2015
  12. 6/9 tag.c: use 'ref-filter' data structuresKarthik Nayak, Jun 25, 2015
  13. 7/9 tag.c: use 'ref-filter' APIsKarthik Nayak, Jun 25, 2015
  14. 8/9 tag.c: implement '--format' optionKarthik Nayak, Jun 25, 2015
  15. 8/9 tag.c: implement '--format' optionKarthik Nayak, Jun 25, 2015
  16. 9/9 tag.c: implement '--merged' and '--no-merged' optionsKarthik Nayak, Jun 25, 2015
  17. Christian CouderJun 27, 2015
  18. Christian CouderJun 28, 2015
  19. Karthik NayakJun 28, 2015
  20. Duy NguyenJun 27, 2015
  21. Junio C HamanoJun 28, 2015
  22. Karthik NayakJun 28, 2015
  23. Junio C HamanoJun 29, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.