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

[PATCH 17/17] ls-files: factor out tag calculation

From
BWBrandon Williams <bmwill@google.com>
Date
Jun 12, 2017, 22:14 UTC
Message-ID
<20170612221408.173876-18-bmwill@google.com>
In-Reply-To
<20170612221408.173876-1-bmwill@google.com>
Signed-off-by: Brandon Williams <bmwill@google.com>
---
 builtin/ls-files.c | 41 +++++++++++++++++++++++++----------------
 1 file changed, 25 insertions(+), 16 deletions(-)
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index c9307f9ef..cdc1cfdd2 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -93,6 +93,30 @@ static void write_name(const char *name)
 	strbuf_release(&full_name);
 }
 
+static const char *get_tag(const struct cache_entry *ce, const char *tag)
+{
+	static char alttag[4];
+
+	if (tag && *tag && show_valid_bit && (ce->ce_flags & CE_VALID)) {
+		memcpy(alttag, tag, 3);
+
+		if (isalpha(tag[0])) {
+			alttag[0] = tolower(tag[0]);
+		} else if (tag[0] == '?') {
+			alttag[0] = '!';
+		} else {
+			alttag[0] = 'v';
+			alttag[1] = tag[0];
+			alttag[2] = ' ';
+			alttag[3] = 0;
+		}
+
+		tag = alttag;
+	}
+
+	return tag;
+}
+
 static void print_debug(const struct cache_entry *ce)
 {
 	if (debug_mode) {
@@ -264,22 +288,7 @@ static void show_ce_entry(const struct index_state *istate,
 				  len, ps_matched,
 				  S_ISDIR(ce->ce_mode) ||
 				  S_ISGITLINK(ce->ce_mode))) {
-		if (tag && *tag && show_valid_bit &&
-		    (ce->ce_flags & CE_VALID)) {
-			static char alttag[4];
-			memcpy(alttag, tag, 3);
-			if (isalpha(tag[0]))
-				alttag[0] = tolower(tag[0]);
-			else if (tag[0] == '?')
-				alttag[0] = '!';
-			else {
-				alttag[0] = 'v';
-				alttag[1] = tag[0];
-				alttag[2] = ' ';
-				alttag[3] = 0;
-			}
-			tag = alttag;
-		}
+		tag = get_tag(ce, tag);
 
 		if (!show_stage) {
 			fputs(tag, stdout);
-- 
2.13.1.518.g3df882009-goog
Previous: Brandon WilliamsNext: Brandon Williams
Message 9 of 18 in “convert ls-files internals to pass around an index”
  1. 00/17 convert ls-files internals to pass around an indexBrandon Williams, Jun 12, 2017
  2. 01/17 convert: convert get_cached_convert_stats_ascii to take an indexBrandon Williams, Jun 12, 2017
  3. 02/17 convert: convert crlf_to_git to take an indexBrandon Williams, Jun 12, 2017
  4. 03/17 convert: convert convert_to_git_filter_fd to take an indexBrandon Williams, Jun 12, 2017
  5. 04/17 convert: convert convert_to_git to take an indexBrandon Williams, Jun 12, 2017
  6. 07/17 ls-files: convert overlay_tree_on_cache to take an indexBrandon Williams, Jun 12, 2017
  7. 14/17 ls-files: convert show_ce_entry to take an indexBrandon Williams, Jun 12, 2017
  8. 13/17 ls-files: convert prune_cache to take an indexBrandon Williams, Jun 12, 2017
  9. 17/17 ls-files: factor out tag calculationBrandon Williams, Jun 12, 2017
  10. 12/17 ls-files: convert ce_excluded to take an indexBrandon Williams, Jun 12, 2017
  11. 15/17 ls-files: convert show_files to take an indexBrandon Williams, Jun 12, 2017
  12. 09/17 ls-files: convert show_killed_files to take an indexBrandon Williams, Jun 12, 2017
  13. 16/17 ls-files: factor out debug info into a functionBrandon Williams, Jun 12, 2017
  14. 10/17 ls-files: convert show_other_files to take an indexBrandon Williams, Jun 12, 2017
  15. 05/17 convert: convert renormalize_buffer to take an indexBrandon Williams, Jun 12, 2017
  16. 08/17 ls-files: convert write_eolinfo to take an indexBrandon Williams, Jun 12, 2017
  17. 06/17 tree: convert read_tree to take an index parameterBrandon Williams, Jun 12, 2017
  18. 11/17 ls-files: convert show_ru_info to take an indexBrandon Williams, Jun 12, 2017

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.