snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit a5942432bf92b1658ea206f8beb1b120c327bc93
parent 6501187c74e83f52ea5eecbad2cee024afe5a1bb
Author: default <nobody@localhost>
Date:   Sun,  3 Nov 2024 15:13:31 +0100

Fixed processing of URLs with two @ inside.

Diffstat:
Mformat.c | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/format.c b/format.c @@ -135,7 +135,9 @@ static xs_str *format_line(const char *line, xs_list **attach) else if (*v == '[') { /* markdown-like links [label](url) */ - xs *w = xs_strip_chars_i(xs_replace(v, "#", "&#35;"), "[)"); + xs *w = xs_strip_chars_i( + xs_replace_i(xs_replace(v, "#", "&#35;"), "@", "&#64;"), + "![)"); xs *l = xs_split_n(w, "](", 1); if (xs_list_len(l) == 2) { @@ -150,7 +152,9 @@ static xs_str *format_line(const char *line, xs_list **attach) else if (*v == '!') { /* markdown-like images ![alt text](url to image) */ - xs *w = xs_strip_chars_i(xs_replace(v, "#", "&#35;"), "![)"); + xs *w = xs_strip_chars_i( + xs_replace_i(xs_replace(v, "#", "&#35;"), "@", "&#64;"), + "![)"); xs *l = xs_split_n(w, "](", 1); if (xs_list_len(l) == 2) { @@ -179,7 +183,8 @@ static xs_str *format_line(const char *line, xs_list **attach) } else if (xs_str_in(v, ":/" "/") != -1) { - xs *u = xs_replace(v, "#", "&#35;"); + xs *u = xs_replace_i(xs_replace(v, "#", "&#35;"), "@", "&#64;"); + xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)"); const char *mime = xs_mime_by_ext(v2);