commit d12ebce

default  ·  2024-05-10 10:22:36 +0000 UTC
parent 5d1577a
More search tweaks MUAHAHAHA.
1 files changed,  +13, -12
M data.c
M data.c
+13, -12
 1@@ -2499,10 +2499,8 @@ xs_list *content_search(snac *user, const char *regex,
 2         return xs_list_new();
 3 
 4     xs_set seen;
 5-    xs_set skipped;
 6 
 7     xs_set_init(&seen);
 8-    xs_set_init(&skipped);
 9 
10     if (max_secs == 0)
11         max_secs = 3;
12@@ -2523,6 +2521,8 @@ xs_list *content_search(snac *user, const char *regex,
13     xs_list_next(pub_tl,  &pub_md5,  &pub_c);
14     xs_list_next(priv_tl, &priv_md5, &priv_c);
15 
16+    show += skip;
17+
18     while (show > 0) {
19         char *md5 = NULL;
20         enum { NONE, PUBLIC, PRIVATE } from = NONE;
21@@ -2594,20 +2594,21 @@ xs_list *content_search(snac *user, const char *regex,
22         xs *l = xs_regex_select_n(c, regex, 1);
23 
24         if (xs_list_len(l)) {
25-            if (skip > 0) {
26-                if (xs_set_add(&skipped, md5) == 1)
27-                    skip--;
28-            }
29-            else {
30-                if (xs_set_add(&seen, md5) == 1)
31-                    show--;
32-            }
33+            if (xs_set_add(&seen, md5) == 1)
34+            show--;
35         }
36     }
37 
38-    xs_set_free(&skipped);
39+    xs_list *r = xs_set_result(&seen);
40 
41-    return xs_set_result(&seen);
42+    if (skip) {
43+        /* BAD */
44+        while (skip--) {
45+            r = xs_list_del(r, 0);
46+        }
47+    }
48+
49+    return r;
50 }
51 
52