summary refs log tree commit diff
path: root/html.c
diff options
context:
space:
mode:
Diffstat (limited to 'html.c')
-rw-r--r--html.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/html.c b/html.c
index 85b6f6b..e404434 100644
--- a/html.c
+++ b/html.c
@@ -14,7 +14,6 @@
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-#include <assert.h>
 #include <err.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -50,21 +49,7 @@ int htmlEnvelope(FILE *file, const struct Envelope *envelope) {
 		{ "messageID", envelope->messageID },
 		{0},
 	};
-
-	size_t cap = sizeof(Mailto);
-	for (struct Variable *var = mailtoVars; var->value; ++var) {
-		cap += ESCAPE_URL_CAP(strlen(var->value));
-	}
-	char *mailto = malloc(cap);
-	if (!mailto) err(EX_OSERR, "malloc");
-
-	FILE *url = fmemopen(mailto, cap, "w");
-	if (!url) err(EX_OSERR, "fmemopen");
-
-	int error = 0
-		|| templateRender(url, Mailto, mailtoVars, escapeURL)
-		|| fclose(url);
-	assert(!error);
+	char *mailto = templateURL(Mailto, mailtoVars);
 
 	const char *from = envelope->from.name;
 	if (!from) from = envelope->from.mailbox;
@@ -84,7 +69,7 @@ int htmlEnvelope(FILE *file, const struct Envelope *envelope) {
 		{ "date", date },
 		{0},
 	};
-	error = templateRender(file, Summary, summaryVars, escapeXML);
+	int error = templateRender(file, Summary, summaryVars, escapeXML);
 	free(mailto);
 	if (error) return error;