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                 }