commit a594243

default  ·  2024-11-03 14:13:31 +0000 UTC
parent 6501187
Fixed processing of URLs with two @ inside.
1 files changed,  +8, -3
+8, -3
 1@@ -135,7 +135,9 @@ static xs_str *format_line(const char *line, xs_list **attach)
 2             else
 3             if (*v == '[') {
 4                 /* markdown-like links [label](url) */
 5-                xs *w = xs_strip_chars_i(xs_replace(v, "#", "#"), "[)");
 6+                xs *w = xs_strip_chars_i(
 7+                    xs_replace_i(xs_replace(v, "#", "#"), "@", "@"),
 8+                "![)");
 9                 xs *l = xs_split_n(w, "](", 1);
10 
11                 if (xs_list_len(l) == 2) {
12@@ -150,7 +152,9 @@ static xs_str *format_line(const char *line, xs_list **attach)
13             else
14             if (*v == '!') {
15                 /* markdown-like images ![alt text](url to image) */
16-                xs *w = xs_strip_chars_i(xs_replace(v, "#", "#"), "![)");
17+                xs *w = xs_strip_chars_i(
18+                    xs_replace_i(xs_replace(v, "#", "#"), "@", "@"),
19+                "![)");
20                 xs *l = xs_split_n(w, "](", 1);
21 
22                 if (xs_list_len(l) == 2) {
23@@ -179,7 +183,8 @@ static xs_str *format_line(const char *line, xs_list **attach)
24             }
25             else
26             if (xs_str_in(v, ":/" "/") != -1) {
27-                xs *u  = xs_replace(v, "#", "#");
28+                xs *u  = xs_replace_i(xs_replace(v, "#", "#"), "@", "@");
29+
30                 xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)");
31 
32                 const char *mime = xs_mime_by_ext(v2);