summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ui.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/ui.c b/ui.c
index 18af635..df51a3d 100644
--- a/ui.c
+++ b/ui.c
@@ -447,19 +447,24 @@ void uiHide(void) {
 	endwin();
 }
 
+static void mainAdd(int y, const char *str) {
+	int ny, nx;
+	wmove(main, y, 0);
+	styleAdd(main, str);
+	getyx(main, ny, nx);
+	if (ny == y) wclrtoeol(main);
+}
+
 static void windowUpdate(void) {
 	struct Window *window = windows.ptrs[windows.show];
 
 	int y = MAIN_LINES - 1;
-	for (size_t i = BufferCap - 1 - window->scroll; i < BufferCap; --i) {
+	size_t bottom = BufferCap - 1 - window->scroll + !!window->scroll;
+	for (size_t i = bottom; i < BufferCap; --i) {
 		const struct Line *line = bufferHard(window->buffer, i);
 		if (!line) continue;
 		if (line->heat < Cold && window->ignore) continue;
-		wmove(main, y, 0);
-		styleAdd(main, line->str);
-		int ny, nx;
-		getyx(main, ny, nx);
-		if (ny == y) wclrtoeol(main);
+		mainAdd(y, line->str);
 		if (!y--) break;
 	}
 
@@ -467,6 +472,18 @@ static void windowUpdate(void) {
 		wmove(main, y--, 0);
 		wclrtoeol(main);
 	}
+	if (!window->scroll) return;
+
+	y = MAIN_LINES - 1;
+	for (size_t i = BufferCap - 1; i < BufferCap; --i) {
+		const struct Line *line = bufferHard(window->buffer, i);
+		if (!line) continue;
+		if (line->heat < Cold && window->ignore) continue;
+		mainAdd(y, line->str);
+		if (--y < MAIN_LINES - SplitLines) break;
+	}
+	wattr_set(main, A_NORMAL, 0, NULL);
+	mvwhline(main, y, 0, ACS_BULLET, COLS);
 }
 
 static void windowScroll(struct Window *window, int n) {
=118a437acfb7b53d7522c71bd3f99982724b425b&follow=1'>Remove hacky tagging from hilexJune McEnroe God that makes the lexers so much simpler. 2021-01-12Add htagml -iJune McEnroe 2021-01-12Render tag index in HTMLJune McEnroe 2021-01-12Add htagml -xJune McEnroe 2021-01-12Prevent matching the same tag twiceJune McEnroe 2021-01-12Process htagml file line by lineJune McEnroe This simplifies some things, adds support for line number tag definitions, and should enable combining htagml with other preprocessors in the future. 2021-01-12Split fields by tab onlyJune McEnroe Also don't fail hard on non-forward-search definitions. 2021-01-12List both Makefile and html.sh under README.7June McEnroe 2021-01-12Add htagml exampleJune McEnroe 2021-01-12Use mandoc and htagml for bin htmlJune McEnroe 2021-01-12Add htagmlJune McEnroe 2021-01-12Replace causal.agency with a simple mdoc pageJune McEnroe 2021-01-11Publish "Using vi"June McEnroe 2021-01-11Enable diff.colorMovedJune McEnroe 2021-01-10Set less search case-insensitiveJune McEnroe 2021-01-10Set EXINITJune McEnroe neovim is laggy as hell in my OpenBSD VM, so I switched to vi so I could type without getting frustrated. 2021-01-09Add c -t flag to print expression typeJune McEnroe Also add missing float case. 2021-01-05Update taglineJune McEnroe