diff --git a/data.c b/data.c index 3a3d992..a166b35 100644 --- a/data.c +++ b/data.c @@ -827,6 +827,15 @@ xs_str *timeline_fn_by_md5(snac *snac, const char *md5) } +int timeline_here(snac *snac, const char *md5) +/* checks if an object is in the user cache */ +{ + xs *fn = timeline_fn_by_md5(snac, md5); + + return !(fn == NULL); +} + + int timeline_get_by_md5(snac *snac, const char *md5, xs_dict **msg) /* gets a message from the timeline */ { @@ -929,9 +938,7 @@ xs_list *timeline_top_level(snac *snac, xs_list *list) break; /* well, there is a parent... but is it here? */ - xs *pfn = timeline_fn_by_md5(snac, line2); - - if (pfn == NULL) + if (!timeline_here(snac, line2)) break; /* it's here! try again with its own parent */ diff --git a/snac.h b/snac.h index ca4c261..42b7daf 100644 --- a/snac.h +++ b/snac.h @@ -92,6 +92,7 @@ int follower_check(snac *snac, const char *actor); d_char *follower_list(snac *snac); double timeline_mtime(snac *snac); +int timeline_here(snac *snac, const char *md5); int timeline_get_by_md5(snac *snac, const char *md5, xs_dict **msg); int timeline_del(snac *snac, char *id); d_char *timeline_simple_list(snac *snac, const char *idx_name, int skip, int show);