diff options
Diffstat (limited to 'format.c')
| -rw-r--r-- | format.c | 11 |
1 files changed, 8 insertions, 3 deletions
| @@ -135,7 +135,9 @@ static xs_str *format_line(const char *line, xs_list **attach) | |||
| 135 | else | 135 | else |
| 136 | if (*v == '[') { | 136 | if (*v == '[') { |
| 137 | /* markdown-like links [label](url) */ | 137 | /* markdown-like links [label](url) */ |
| 138 | xs *w = xs_strip_chars_i(xs_replace(v, "#", "#"), "[)"); | 138 | xs *w = xs_strip_chars_i( |
| 139 | xs_replace_i(xs_replace(v, "#", "#"), "@", "@"), | ||
| 140 | "; | 141 | xs *l = xs_split_n(w, "](", 1); |
| 140 | 142 | ||
| 141 | if (xs_list_len(l) == 2) { | 143 | if (xs_list_len(l) == 2) { |
| @@ -150,7 +152,9 @@ static xs_str *format_line(const char *line, xs_list **attach) | |||
| 150 | else | 152 | else |
| 151 | if (*v == '!') { | 153 | if (*v == '!') { |
| 152 | /* markdown-like images  */ | 154 | /* markdown-like images  */ |
| 153 | xs *w = xs_strip_chars_i(xs_replace(v, "#", "#"), "; | 158 | xs *l = xs_split_n(w, "](", 1); |
| 155 | 159 | ||
| 156 | if (xs_list_len(l) == 2) { | 160 | if (xs_list_len(l) == 2) { |
| @@ -179,7 +183,8 @@ static xs_str *format_line(const char *line, xs_list **attach) | |||
| 179 | } | 183 | } |
| 180 | else | 184 | else |
| 181 | if (xs_str_in(v, ":/" "/") != -1) { | 185 | if (xs_str_in(v, ":/" "/") != -1) { |
| 182 | xs *u = xs_replace(v, "#", "#"); | 186 | xs *u = xs_replace_i(xs_replace(v, "#", "#"), "@", "@"); |
| 187 | |||
| 183 | xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)"); | 188 | xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)"); |
| 184 | 189 | ||
| 185 | const char *mime = xs_mime_by_ext(v2); | 190 | const char *mime = xs_mime_by_ext(v2); |