commit a18c719
default
·
2023-07-11 17:58:55 +0000 UTC
parent 45d45f6
Fixed crash.
1 files changed,
+26,
-12
M
html.c
M
html.c
+26,
-12
1@@ -1147,47 +1147,61 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local,
2 continue;
3
4 if (xs_startswith(t, "image/")) {
5- char *url = xs_dict_get(v, "url");
6- xs *name = encode_html(xs_dict_get(v, "name"));
7+ char *url = xs_dict_get(v, "url");
8+ char *name = xs_dict_get(v, "name");
9
10 if (url != NULL) {
11 if (xs_is_null(name))
12 name = "";
13+
14+ xs *es1 = encode_html(name);
15 xs *s1 = xs_fmt(
16 "<a href=\"%s\" target=\"_blank\"><img src=\"%s\" alt=\"%s\" title=\"%s\" loading=\"lazy\"/></a>\n",
17- url, url, name, name);
18+ url, url, es1, es1);
19
20 s = xs_str_cat(s, s1);
21 }
22 }
23 else
24 if (xs_startswith(t, "video/")) {
25- char *url = xs_dict_get(v, "url");
26- xs *name = encode_html(xs_dict_get(v, "name"));
27+ char *url = xs_dict_get(v, "url");
28+ char *name = xs_dict_get(v, "name");
29
30 if (url != NULL) {
31- xs *s1 = xs_fmt("<video style=\"max-width: 90vw; max-height: 70vh;\" controls src=\"%s\">Video: <a href=\"%s\">%s</a></video>\n", url, url, name ? name : "No description.");
32+ if (xs_is_null(name))
33+ name = "No description";
34+
35+ xs *es1 = encode_html(name);
36+ xs *s1 = xs_fmt("<video style=\"max-width: 90vw; max-height: 70vh;\" controls src=\"%s\">Video: <a href=\"%s\">%s</a></video>\n", url, url, es1);
37
38 s = xs_str_cat(s, s1);
39 }
40 }
41 else
42 if (xs_startswith(t, "audio/")) {
43- char *url = xs_dict_get(v, "url");
44- xs *name = encode_html(xs_dict_get(v, "name"));
45+ char *url = xs_dict_get(v, "url");
46+ char *name = xs_dict_get(v, "name");
47
48 if (url != NULL) {
49- xs *s1 = xs_fmt("<audio style=\"max-width: 90vw\" controls src=\"%s\">Audio: <a href=\"%s\">%s</a></audio>\n", url, url, name ? name : "No description.");
50+ if (xs_is_null(name))
51+ name = "No description";
52+
53+ xs *es1 = encode_html(name);
54+ xs *s1 = xs_fmt("<audio style=\"max-width: 90vw\" controls src=\"%s\">Audio: <a href=\"%s\">%s</a></audio>\n", url, url, es1);
55
56 s = xs_str_cat(s, s1);
57 }
58 }
59 else {
60- char *url = xs_dict_get(v, "url");
61- xs *name = encode_html(xs_dict_get(v, "name"));
62+ char *url = xs_dict_get(v, "url");
63+ char *name = xs_dict_get(v, "name");
64
65 if (url != NULL) {
66- xs *s1 = xs_fmt("<a href=\"%s\">Attachment: %s</a>", url, name ? name : "No description");
67+ if (xs_is_null(name))
68+ name = "No description";
69+
70+ xs *es1 = encode_html(name);
71+ xs *s1 = xs_fmt("<a href=\"%s\">Attachment: %s</a>", url, es1);
72
73 s = xs_str_cat(s, s1);
74 }