aboutsummaryrefslogtreecommitdiff
path: root/format.c
diff options
context:
space:
mode:
Diffstat (limited to 'format.c')
-rw-r--r--format.c48
1 files changed, 24 insertions, 24 deletions
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("<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, "#", "&#35;"), "[)");
@@ -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, "#", "&#35;");
+ 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