From 7710ca76a04432c2dbd3a3f4c1f8e3f1f145e97f Mon Sep 17 00:00:00 2001 From: Yonle Date: Sun, 23 Jul 2023 20:20:15 +0700 Subject: [PATCH] format.c: Encode all HTML characters when we're in pre element until we are out. Signed-off-by: Yonle --- format.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/format.c b/format.c index 0f5f368..fe71996 100644 --- a/format.c +++ b/format.c @@ -56,7 +56,8 @@ static xs_str *format_line(const char *line, xs_list **attach) /* markup */ if (xs_startswith(v, "`")) { xs *s1 = xs_crop_i(xs_dup(v), 1, -1); - xs *s2 = xs_fmt("%s", s1); + xs *e1 = encode_html(s1); + xs *s2 = xs_fmt("%s", e1); s = xs_str_cat(s, s2); } else @@ -134,8 +135,15 @@ xs_str *not_really_markdown(const char *content, xs_list **attach) continue; } - if (in_pre) - ss = xs_dup(v); + if (in_pre) { + // Encode all HTML characters when we're in pre element until we are out. + ss = encode_html(xs_dup(v)); + + s = xs_str_cat(s, ss); + s = xs_str_cat(s, "
"); + continue; + } + else ss = xs_strip_i(format_line(v, attach));