diff options
Diffstat (limited to 'events.c')
-rw-r--r-- | events.c | 20 |
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); } |