commit 230a548

default  ·  2023-11-28 19:55:58 +0000 UTC
parent 89b796f
html_entry() returns an xs_html.
1 files changed,  +17, -13
M html.c
M html.c
+17, -13
 1@@ -1430,7 +1430,7 @@ xs_html *html_entry_controls(snac *snac, const xs_dict *msg, const char *md5)
 2 }
 3 
 4 
 5-xs_str *html_entry(snac *user, xs_dict *msg, int local,
 6+xs_html *html_entry(snac *user, xs_dict *msg, int local,
 7                    int level, char *md5, int hide_children)
 8 {
 9     char *id    = xs_dict_get(msg, "id");
10@@ -1452,7 +1452,7 @@ xs_str *html_entry(snac *user, xs_dict *msg, int local,
11         return NULL;
12 
13     if (strcmp(type, "Follow") == 0) {
14-        xs_html *h = xs_html_tag("div",
15+        return xs_html_tag("div",
16             xs_html_attr("class", "snac-post"),
17             xs_html_tag("div",
18                 xs_html_attr("class", "snac-post-header"),
19@@ -1460,8 +1460,6 @@ xs_str *html_entry(snac *user, xs_dict *msg, int local,
20                     xs_html_attr("class", "snac-origin"),
21                     xs_html_text(L("follows you"))),
22                 html_msg_icon(msg)));
23-
24-        return xs_html_render(h);
25     }
26     else
27     if (!xs_match(type, "Note|Question|Page|Article")) {
28@@ -2017,15 +2015,15 @@ xs_str *html_entry(snac *user, xs_dict *msg, int local,
29                     object_get_by_md5(cmd5, &chd);
30 
31                 if (chd != NULL && xs_is_null(xs_dict_get(chd, "name"))) {
32-                    xs *s1 = html_entry(user, chd, local, level + 1, cmd5, hide_children);
33+                    xs_html *che = html_entry(user, chd, local, level + 1, cmd5, hide_children);
34 
35-                    if (s1 != NULL) {
36+                    if (che != NULL) {
37                         if (left > 3)
38                             xs_html_add(ch_older,
39-                                xs_html_raw(s1));
40+                                che);
41                         else
42                             xs_html_add(ch_container,
43-                                xs_html_raw(s1));
44+                                che);
45                     }
46                 }
47                 else
48@@ -2036,7 +2034,7 @@ xs_str *html_entry(snac *user, xs_dict *msg, int local,
49         }
50     }
51 
52-    return xs_html_render(entry_top);
53+    return entry_top;
54 }
55 
56 
57@@ -2111,8 +2109,12 @@ xs_str *html_timeline(snac *user, const xs_list *list, int local,
58                 continue;
59         }
60 
61-        xs *s1 = html_entry(user, msg, local, 0, v, user ? 0 : 1);
62-        s = xs_str_cat(s, s1);
63+        xs_html *entry = html_entry(user, msg, local, 0, v, user ? 0 : 1);
64+
65+        if (entry != NULL) {
66+            xs *s1 = xs_html_render(entry);
67+            s = xs_str_cat(s, s1);
68+        }
69     }
70 
71     s = xs_str_cat(s, "</div>\n");
72@@ -2435,10 +2437,12 @@ xs_str *html_notifications(snac *snac)
73         else {
74             xs *md5 = xs_md5_hex(id, strlen(id));
75 
76-            xs *s1 = html_entry(snac, obj, 0, 0, md5, 1);
77+            xs_html *entry = html_entry(snac, obj, 0, 0, md5, 1);
78 
79-            if (s1 != NULL)
80+            if (entry != NULL) {
81+                xs *s1 = xs_html_render(entry);
82                 s = xs_str_cat(s, s1);
83+            }
84         }
85 
86         s = xs_str_cat(s, "</div>\n");