Commit Diff


commit - 034e3b695c4cdc837b2a144ddede9eb9f6dfd857
commit + e0d42f609a25f032fe7b71d540dc343013c0a92b
blob - 2bda0908903ef6ce33f98a8b5f7f18cd31c7d91c
blob + 445f746a04884c06491e5f23e9c151ee40b29eef
--- tog/tog.c
+++ tog/tog.c
@@ -498,6 +498,17 @@ draw_commits(struct commit_queue_entry **last,
 	char *id_str, *header;
 	wchar_t *wline;
 
+	entry = first;
+	ncommits = 0;
+	while (entry) {
+		if (ncommits == selected_idx) {
+			*selected = entry;
+			break;
+		}
+		entry = TAILQ_NEXT(entry, entry);
+		ncommits++;
+	}
+
 	err = got_object_id_str(&id_str, (*selected)->id);
 	if (err)
 		return err;
@@ -536,10 +547,8 @@ draw_commits(struct commit_queue_entry **last,
 	while (entry) {
 		if (ncommits >= limit - 1)
 			break;
-		if (ncommits == selected_idx) {
+		if (ncommits == selected_idx)
 			wstandout(tog_log_view.window);
-			*selected = entry;
-		}
 		err = draw_commit(entry->commit, entry->id);
 		if (ncommits == selected_idx)
 			wstandend(tog_log_view.window);