diff options
| -rw-r--r-- | data.c | 25 |
1 files changed, 13 insertions, 12 deletions
| @@ -2499,10 +2499,8 @@ xs_list *content_search(snac *user, const char *regex, | |||
| 2499 | return xs_list_new(); | 2499 | return xs_list_new(); |
| 2500 | 2500 | ||
| 2501 | xs_set seen; | 2501 | xs_set seen; |
| 2502 | xs_set skipped; | ||
| 2503 | 2502 | ||
| 2504 | xs_set_init(&seen); | 2503 | xs_set_init(&seen); |
| 2505 | xs_set_init(&skipped); | ||
| 2506 | 2504 | ||
| 2507 | if (max_secs == 0) | 2505 | if (max_secs == 0) |
| 2508 | max_secs = 3; | 2506 | max_secs = 3; |
| @@ -2523,6 +2521,8 @@ xs_list *content_search(snac *user, const char *regex, | |||
| 2523 | xs_list_next(pub_tl, &pub_md5, &pub_c); | 2521 | xs_list_next(pub_tl, &pub_md5, &pub_c); |
| 2524 | xs_list_next(priv_tl, &priv_md5, &priv_c); | 2522 | xs_list_next(priv_tl, &priv_md5, &priv_c); |
| 2525 | 2523 | ||
| 2524 | show += skip; | ||
| 2525 | |||
| 2526 | while (show > 0) { | 2526 | while (show > 0) { |
| 2527 | char *md5 = NULL; | 2527 | char *md5 = NULL; |
| 2528 | enum { NONE, PUBLIC, PRIVATE } from = NONE; | 2528 | enum { NONE, PUBLIC, PRIVATE } from = NONE; |
| @@ -2594,20 +2594,21 @@ xs_list *content_search(snac *user, const char *regex, | |||
| 2594 | xs *l = xs_regex_select_n(c, regex, 1); | 2594 | xs *l = xs_regex_select_n(c, regex, 1); |
| 2595 | 2595 | ||
| 2596 | if (xs_list_len(l)) { | 2596 | if (xs_list_len(l)) { |
| 2597 | if (skip > 0) { | 2597 | if (xs_set_add(&seen, md5) == 1) |
| 2598 | if (xs_set_add(&skipped, md5) == 1) | 2598 | show--; |
| 2599 | skip--; | ||
| 2600 | } | ||
| 2601 | else { | ||
| 2602 | if (xs_set_add(&seen, md5) == 1) | ||
| 2603 | show--; | ||
| 2604 | } | ||
| 2605 | } | 2599 | } |
| 2606 | } | 2600 | } |
| 2607 | 2601 | ||
| 2608 | xs_set_free(&skipped); | 2602 | xs_list *r = xs_set_result(&seen); |
| 2609 | 2603 | ||
| 2610 | return xs_set_result(&seen); | 2604 | if (skip) { |
| 2605 | /* BAD */ | ||
| 2606 | while (skip--) { | ||
| 2607 | r = xs_list_del(r, 0); | ||
| 2608 | } | ||
| 2609 | } | ||
| 2610 | |||
| 2611 | return r; | ||
| 2611 | } | 2612 | } |
| 2612 | 2613 | ||
| 2613 | 2614 | ||