commit c165be8

default  ·  2024-10-19 20:34:22 +0000 UTC
parent 75911f5
In tag_index(), don't repeat tags in indexes.
1 files changed,  +4, -1
M data.c
M data.c
+4, -1
 1@@ -1894,6 +1894,7 @@ void tag_index(const char *id, const xs_dict *obj)
 2 /* update the tag indexes for this object */
 3 {
 4     const xs_list *tags = xs_dict_get(obj, "tag");
 5+    xs *md5_id = xs_md5_hex(id, strlen(id));
 6 
 7     if (is_msg_public(obj) && xs_type(tags) == XSTYPE_LIST && xs_list_len(tags) > 0) {
 8         xs *g_tag_dir = xs_fmt("%s/tag", srv_basedir);
 9@@ -1920,7 +1921,9 @@ void tag_index(const char *id, const xs_dict *obj)
10                 mkdirx(tag_dir);
11 
12                 xs *g_tag_idx = xs_fmt("%s/%s.idx", tag_dir, md5_tag);
13-                index_add(g_tag_idx, id);
14+
15+                if (!index_in_md5(g_tag_idx, md5_id))
16+                    index_add_md5(g_tag_idx, md5_id);
17 
18                 FILE *f;
19                 xs *g_tag_name = xs_replace(g_tag_idx, ".idx", ".tag");