commit c78574c8d9d1667a33d64224a7d1dc812963cef8
parent 3e71f18f34c4041b3adb59862defff8dbe8adf61
Author: default <nobody@localhost>
Date: Mon, 21 Nov 2022 07:57:38 +0100
Don't hide messages (and their children) if it's already hidden.
Diffstat:
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/data.c b/data.c
@@ -663,14 +663,18 @@ int timeline_hide(snac *snac, char *id, int hide)
xs *msg = xs_json_loads(s1);
xs *meta = xs_dup(xs_dict_get(msg, "_snac"));
xs *hdn = xs_val_new(hide ? XSTYPE_TRUE : XSTYPE_FALSE);
+ char *p, *v;
fclose(f);
+ /* if it's already in this hidden state, we're done */
+ if ((v = xs_dict_get(meta, "hidden")) && xs_type(v) == xs_type(hdn))
+ return ret;
+
meta = xs_dict_set(meta, "hidden", hdn);
msg = xs_dict_set(msg, "_snac", meta);
if ((f = fopen(fn, "w")) != NULL) {
- char *p, *v;
xs *j1 = xs_json_dumps_pp(msg, 4);
fwrite(j1, strlen(j1), 1, f);