diff options
author | default <nobody@localhost> | 2022-11-21 07:57:38 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2022-11-21 07:57:38 +0100 |
commit | c78574c8d9d1667a33d64224a7d1dc812963cef8 (patch) | |
tree | 9274a0d4de5c8131e36759456e75f6799ac64229 /data.c | |
parent | 3e71f18f34c4041b3adb59862defff8dbe8adf61 (diff) |
Don't hide messages (and their children) if it's already hidden.
Diffstat (limited to 'data.c')
-rw-r--r-- | data.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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); |