summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ui.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/ui.c b/ui.c
index 3f730d2..9a070a6 100644
--- a/ui.c
+++ b/ui.c
@@ -359,38 +359,45 @@ static void statusAdd(const char *str) {
 }
 
 static void statusUpdate(void) {
+	int otherUnread = 0;
+	enum Heat otherHeat = Cold;
 	wmove(status, 0, 0);
+
 	int num;
 	const struct Window *window;
 	for (num = 0, window = windows.head; window; ++num, window = window->next) {
 		if (!window->heat && window != windows.active) continue;
-		int unread;
+		if (window != windows.active) {
+			otherUnread += window->unreadCount;
+			if (window->heat > otherHeat) otherHeat = window->heat;
+		}
+		int trunc;
 		char buf[256];
 		snprintf(
 			buf, sizeof(buf), "\3%d%s %d %s %n(\3%02d%d\3%d) ",
 			idColors[window->id], (window == windows.active ? "\26" : ""),
 			num, idNames[window->id],
-			&unread, (window->heat > Warm ? White : idColors[window->id]),
+			&trunc, (window->heat > Warm ? White : idColors[window->id]),
 			window->unreadCount,
 			idColors[window->id]
 		);
-		if (!window->mark || !window->unreadCount) buf[unread] = '\0';
+		if (!window->mark || !window->unreadCount) buf[trunc] = '\0';
 		statusAdd(buf);
 	}
 	wclrtoeol(status);
+	if (!to_status_line) return;
 
-	int unread;
-	char buf[256];
-	snprintf(
-		buf, sizeof(buf), "%s %s%n (%d)",
-		self.network, idNames[windows.active->id],
-		&unread, windows.active->unreadCount
-	);
-	if (!windows.active->mark || !windows.active->unreadCount) {
-		buf[unread] = '\0';
-	}
+	window = windows.active;
 	putp(to_status_line);
-	putp(buf);
+	printf("%s %s", self.network, idNames[window->id]);
+	if (window->mark && window->unreadCount) {
+		printf(
+			" (%d%s)", window->unreadCount, (window->heat > Warm ? "!" : "")
+		);
+	}
+	if (otherUnread) {
+		printf(" (+%d%s)", otherUnread, (otherHeat > Warm ? "!" : ""));
+	}
 	putp(from_status_line);
 	fflush(stdout);
 }
ow=1'>ui-shared: URL-escape script_nameJohn Keeping 2014-01-12ui-refs: escape HTML chars in author and tagger namesJohn Keeping 2014-01-12filter: pass extra arguments via cgit_open_filterJohn Keeping 2014-01-12ui-snapshot: set unused cgit_filter fields to zeroJohn Keeping 2014-01-12html: remove redundant htmlfd variableJohn Keeping 2014-01-12tests: add Valgrind supportJohn Keeping 2014-01-12cache: don't leave cache_slot fields uninitializedJohn Keeping 2014-01-10filter: split filter functions into their own fileJason A. Donenfeld 2014-01-10filter: make exit status localJason A. Donenfeld 2014-01-10parsing: fix header typoJason A. Donenfeld 2014-01-10cgit.c: Fix comment on bit mask hackLukas Fleischer 2014-01-10cgit.c: Use "else" for mutually exclusive branchesLukas Fleischer 2014-01-10ui-snapshot.c: Do not reinvent suffixcmp()Lukas Fleischer 2014-01-10Refactor cgit_parse_snapshots_mask()Lukas Fleischer 2014-01-10Disallow use of undocumented snapshot delimitersLukas Fleischer 2014-01-10Replace most uses of strncmp() with prefixcmp()Lukas Fleischer 2014-01-09README: Fix dependenciesLukas Fleischer 2014-01-08README: Spelling and formatting fixesLukas Fleischer 2014-01-08Fix UTF-8 with syntax-highlighting.pyPřemysl Janouch 2014-01-08Add a suggestion to the manpagePřemysl Janouch 2014-01-08Fix the example configurationPřemysl Janouch 2014-01-08Fix about-formatting.shPřemysl Janouch 2014-01-08Fix some spelling errorsPřemysl Janouch 2014-01-08filters: highlight.sh: add css comments for highlight 2.6 and 3.8Ferry Huberts