diff --git a/html.c b/html.c index d987761..d3b4148 100644 --- a/html.c +++ b/html.c @@ -753,9 +753,11 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons /** children **/ xs *children = object_children(id); + int left = xs_list_len(children); - if (xs_list_len(children)) { + if (left) { char *p, *cmd5; + int older_open = 0; s = xs_str_cat(s, "
...

\n"); @@ -764,17 +766,33 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons else s = xs_str_cat(s, "

\n"); + if (left > 3) { + xs *s1 = xs_fmt("
%s\n", L("Older...")); + s = xs_str_cat(s, s1); + older_open = 1; + } + p = children; while (xs_list_iter(&p, &cmd5)) { xs *chd = NULL; object_get_by_md5(cmd5, &chd, NULL); + if (older_open && left <= 3) { + s = xs_str_cat(s, "
\n"); + older_open = 0; + } + if (chd != NULL) s = html_entry(snac, s, chd, local, level + 1, cmd5); else snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5)); + + left--; } + if (older_open) + s = xs_str_cat(s, "
\n"); + s = xs_str_cat(s, "\n"); s = xs_str_cat(s, "\n"); }