summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-12-08 20:34:35 -0500
committerJune McEnroe <june@causal.agency>2020-12-08 20:34:35 -0500
commit0b57cb9976c2eab1404d455038d69d2d273f105a (patch)
treec82925889d0a8d1ad159bb4a21f00713fd16a28c
parentCondense getservinfo and bounds check (diff)
downloadbubger-0b57cb9976c2eab1404d455038d69d2d273f105a.tar.gz
bubger-0b57cb9976c2eab1404d455038d69d2d273f105a.zip
Handle mail with no trailing newline correctly
Embarrassing that my mail client produced such a thing.
Diffstat (limited to '')
-rw-r--r--html.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/html.c b/html.c
index 7fccc0a..75c2b7a 100644
--- a/html.c
+++ b/html.c
@@ -249,8 +249,8 @@ static int htmlMarkup(FILE *file, const char *content) {
 	size_t cap = 0;
 	char *buf = NULL;
 	bool patch = false;
-	for (const char *nl; (nl = strchr(content, '\n')); content = &nl[1]) {
-		size_t len = nl - content;
+	while (*content) {
+		size_t len = strcspn(content, "\n");
 		if (cap < len + 1) {
 			cap = len + 1;
 			buf = realloc(buf, cap);
@@ -295,6 +295,9 @@ static int htmlMarkup(FILE *file, const char *content) {
 
 		error = error || templateRender(file, "\n", NULL, NULL);
 		if (error) break;
+
+		content += len;
+		if (*content) content++;
 	}
 	free(buf);
 	return error;