diff --git a/format.c b/format.c
index 573b702..9a3ef87 100644
--- 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("%s", 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, "#", "#"), "[)");
@@ -200,6 +177,29 @@ static xs_str *format_line(const char *line, xs_list **attach)
else
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("%s", v2, u);
+ s = xs_str_cat(s, s1);
+ }
+ }
else
s = xs_str_cat(s, v);
}