diff --git a/zet.dpi.c b/zet.dpi.c
index c0da600..6d0c403 100644
--- a/zet.dpi.c
+++ b/zet.dpi.c
@@ -163,9 +163,13 @@ static int write_topbar(int fd, enum page page, const char *id, const char *titl
rc |= write_buf(fd, ">");
if (page == PAGE_ZET) {
- rc |= dprintf(fd, " [", id);
- rc |= write_html(fd, title, strlen(title));
- rc |= dprintf(fd, "](§%s
)", id);
+ if (title == NULL) {
+ rc |= dprintf(fd, " §%s
", id, id);
+ } else {
+ rc |= dprintf(fd, " [", id);
+ rc |= write_html(fd, title, strlen(title));
+ rc |= dprintf(fd, "](§%s
)", id);
+ }
}
rc |= write_buf(fd, "");
@@ -757,6 +761,7 @@ static int dpi_serve_zet(int fd, char *path) {
char buf[128];
char *title = zet_get_title_fd(note_fd, buf, sizeof(buf));
+ if (title == NULL) title = id;
rc = lseek(note_fd, 0, SEEK_SET);
if (rc < 0) return dpi_respond_err(fd, "lseek");