summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--events.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/events.c b/events.c
index e9a4f83..7ebb867 100644
--- a/events.c
+++ b/events.c
@@ -213,5 +213,25 @@ enum kcgi_err eventsPage(struct kreq *req) {
 		if (error) return error;
 	}
 	if (result != SQLITE_DONE) errx(EX_SOFTWARE, "%s", sqlite3_errmsg(db));
+
+	if (rows == eventsLimit) {
+		char *href = khttp_urlpart(
+			NULL, NULL, Pages[Events],
+			Keys[Network].name, scope.network,
+			Keys[Context].name, scope.context,
+			Keys[After].name, timestamp(prevTime - eventsOverlap),
+			NULL
+		);
+		if (!href) err(EX_OSERR, "khttp_urlpart");
+		error = 0
+			|| khtml_elem(&html, KELEM_TR)
+			|| khtml_attr(&html, KELEM_TH, KATTR_COLSPAN, "3", KATTR__MAX)
+			|| khtml_attr(&html, KELEM_A, KATTR_HREF, href, KATTR__MAX)
+			|| khtml_puts(&html, "Later messages")
+			|| khtml_closeelem(&html, 3);
+		free(href);
+		if (error) return error;
+	}
+
 	return htmlFooter(&html) || khtml_close(&html);
 }