diff options
author | June McEnroe <june@causal.agency> | 2020-12-08 20:34:35 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-12-08 20:34:35 -0500 |
commit | 0b57cb9976c2eab1404d455038d69d2d273f105a (patch) | |
tree | c82925889d0a8d1ad159bb4a21f00713fd16a28c | |
parent | Condense getservinfo and bounds check (diff) | |
download | bubger-0b57cb9976c2eab1404d455038d69d2d273f105a.tar.gz bubger-0b57cb9976c2eab1404d455038d69d2d273f105a.zip |
Handle mail with no trailing newline correctly
Embarrassing that my mail client produced such a thing.
-rw-r--r-- | html.c | 7 |
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; |