commit 560db69d1467bc333c4aca3c43a8174fff0a901d
parent 8de46e30fd17699006b5fae184fa4b0b3a35f118
Author: default <nobody@localhost>
Date: Fri, 25 Oct 2024 07:13:28 +0200
Accept any URL schema (not just http) in format_line().
Diffstat:
M | format.c | | | 48 | ++++++++++++++++++++++++------------------------ |
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/format.c b/format.c
@@ -93,7 +93,7 @@ static xs_str *format_line(const char *line, xs_list **attach)
"\\*\\*?\\*?[^\\*]+\\*?\\*?\\*" "|"
"!\\[[^]]+\\]\\([^\\)]+\\)" "|"
"\\[[^]]+\\]\\([^\\)]+\\)" "|"
- "https?:/" "/[^[:space:]]+"
+ "[a-z]+?:/" "/[^[:space:]]+"
")");
int n = 0;
@@ -133,29 +133,6 @@ static xs_str *format_line(const char *line, xs_list **attach)
s = xs_str_cat(s, s2);
}
else
- if (xs_startswith(v, "http")) {
- xs *u = xs_replace(v, "#", "#");
- xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)");
-
- const char *mime = xs_mime_by_ext(v2);
-
- if (attach != NULL && xs_startswith(mime, "image/")) {
- /* if it's a link to an image, insert it as an attachment */
- xs *d = xs_dict_new();
-
- d = xs_dict_append(d, "mediaType", mime);
- d = xs_dict_append(d, "url", v2);
- d = xs_dict_append(d, "name", "");
- d = xs_dict_append(d, "type", "Image");
-
- *attach = xs_list_append(*attach, d);
- }
- else {
- xs *s1 = xs_fmt("<a href=\"%s\" target=\"_blank\">%s</a>", v2, u);
- s = xs_str_cat(s, s1);
- }
- }
- else
if (*v == '[') {
/* markdown-like links [label](url) */
xs *w = xs_strip_chars_i(xs_replace(v, "#", "#"), "[)");
@@ -201,6 +178,29 @@ static xs_str *format_line(const char *line, xs_list **attach)
s = xs_str_cat(s, v);
}
else
+ if (xs_str_in(v, ":/" "/") != -1) {
+ xs *u = xs_replace(v, "#", "#");
+ xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)");
+
+ const char *mime = xs_mime_by_ext(v2);
+
+ if (attach != NULL && xs_startswith(mime, "image/")) {
+ /* if it's a link to an image, insert it as an attachment */
+ xs *d = xs_dict_new();
+
+ d = xs_dict_append(d, "mediaType", mime);
+ d = xs_dict_append(d, "url", v2);
+ d = xs_dict_append(d, "name", "");
+ d = xs_dict_append(d, "type", "Image");
+
+ *attach = xs_list_append(*attach, d);
+ }
+ else {
+ xs *s1 = xs_fmt("<a href=\"%s\" target=\"_blank\">%s</a>", v2, u);
+ s = xs_str_cat(s, s1);
+ }
+ }
+ else
s = xs_str_cat(s, v);
}
else