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

[PATCH GITK 3/6] gitk: drawtags: Introduce concept of unabbreviated marks

From
IJIan Jackson <ijackson@chiark.greenend.org.uk>
Date
Nov 8, 2016, 00:52 UTC
Message-ID
<20161108005241.19888-4-ijackson@chiark.greenend.org.uk>
In-Reply-To
<20161108005241.19888-1-ijackson@chiark.greenend.org.uk>

We are going to want to show some tags in full, even if they are long or there are other tags. Do this by filtering the tags into `marks_unabbrev' and `marks'. `marks_unabbrev' bypasses the tag abbreviation, and is put on the front of the marks array after any abbreviation has been done.

No functional change right now because no tags are considered `unabbrev'.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
---
 gitk | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/gitk b/gitk
index 31aecda..d76f1e3 100755
--- a/gitk
+++ b/gitk
@@ -6546,6 +6546,10 @@ proc totalwidth {l font extra} {
     return $tot
 }
 
+proc tag_want_unabbrev {tag} {
+    return 0
+}
+
 proc drawtags {id x xt y1} {
     global idtags idheads idotherrefs mainhead
     global linespc lthickness
@@ -6564,8 +6568,16 @@ proc drawtags {id x xt y1} {
     set delta [expr {int(0.5 * ($linespc - $lthickness))}]
     set extra [expr {$delta + $lthickness + $linespc}]
 
+    set marks_unabbrev {}
     if {[info exists idtags($id)]} {
-	set marks $idtags($id)
+	set marks {}
+	foreach tag $idtags($id) {
+	    if {[tag_want_unabbrev $tag]} {
+		lappend marks_unabbrev $tag
+	    } else {
+		lappend marks $tag
+	    }
+	}
 	set ntags [llength $marks]
 	if {$ntags > $maxtags ||
 	    [totalwidth $marks mainfont $extra] > $maxwidth} {
@@ -6577,6 +6589,7 @@ proc drawtags {id x xt y1} {
 	    }
 	}
     }
+    set marks [concat $marks_unabbrev $marks]
     set ntags [llength $marks]
 
     if {[info exists idheads($id)]} {
-- 
2.10.1
Previous: Ian JacksonNext: Ian Jackson
Message 2 of 18 in “Provide for config to specify tags not to abbreviate”
  1. 0/6 Provide for config to specify tags not to abbreviateIan Jackson, Nov 8, 2016
  2. 3/6 gitk: drawtags: Introduce concept of unabbreviated marksIan Jackson, Nov 8, 2016
  3. 2/6 gitk: Internal: drawtags: Idempotently reset "ntags"Ian Jackson, Nov 8, 2016
  4. 1/6 gitk: Internal: drawtags: Abolish "singletag" variableIan Jackson, Nov 8, 2016
  5. 4/6 gitk: Provide for config to specify tags not to abbreviateIan Jackson, Nov 8, 2016
  6. 5/6 config docs: Provide for config to specify tags not to abbreviateIan Jackson, Nov 8, 2016
  7. Jacob KellerNov 8, 2016
  8. Ian JacksonNov 8, 2016
  9. Jeff KingNov 8, 2016
  10. Ian JacksonNov 9, 2016
  11. Junio C HamanoNov 9, 2016
  12. Ian JacksonNov 9, 2016
  13. Junio C HamanoNov 9, 2016
  14. Ian JacksonNov 9, 2016
  15. Markus HitterNov 10, 2016
  16. Ian JacksonNov 8, 2016
  17. Markus HitterNov 8, 2016
  18. Ian JacksonNov 8, 2016

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.