summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data.c13
-rw-r--r--main.c2
-rw-r--r--snac.h2
3 files changed, 10 insertions, 7 deletions
diff --git a/data.c b/data.c
index 6e12523..3a3d992 100644
--- a/data.c
+++ b/data.c
@@ -906,11 +906,12 @@ void timeline_admire(snac *snac, char *id, char *admirer, int like)
}
-d_char *timeline_top_level(d_char *list)
+xs_list *timeline_top_level(snac *snac, xs_list *list)
/* returns the top level md5 entries from this index */
{
xs_set seen;
- char *p, *v;
+ xs_list *p;
+ xs_str *v;
xs_set_init(&seen);
@@ -927,8 +928,10 @@ d_char *timeline_top_level(d_char *list)
if (!object_parent(line, line2, sizeof(line2)))
break;
- /* well, there is a parent... but if it's not there, use this */
- if (!object_here_by_md5(line2))
+ /* well, there is a parent... but is it here? */
+ xs *pfn = timeline_fn_by_md5(snac, line2);
+
+ if (pfn == NULL)
break;
/* it's here! try again with its own parent */
@@ -965,7 +968,7 @@ d_char *timeline_list(snac *snac, const char *idx_name, int skip, int show)
{
xs *list = timeline_simple_list(snac, idx_name, skip, show);
- return timeline_top_level(list);
+ return timeline_top_level(snac, list);
}
diff --git a/main.c b/main.c
index 4f9722b..f05cb51 100644
--- a/main.c
+++ b/main.c
@@ -165,7 +165,7 @@ int main(int argc, char *argv[])
xs *idx = xs_fmt("%s/private.idx", snac.basedir);
xs *list = index_list_desc(idx, 0, 256);
- xs *tl = timeline_top_level(list);
+ xs *tl = timeline_top_level(&snac, list);
xs *j = xs_json_dumps_pp(tl, 4);
printf("%s\n", j);
diff --git a/snac.h b/snac.h
index 3894908..ca4c261 100644
--- a/snac.h
+++ b/snac.h
@@ -99,7 +99,7 @@ d_char *timeline_list(snac *snac, const char *idx_name, int skip, int show);
int timeline_add(snac *snac, char *id, char *o_msg);
void timeline_admire(snac *snac, char *id, char *admirer, int like);
-d_char *timeline_top_level(d_char *list);
+xs_list *timeline_top_level(snac *snac, xs_list *list);
d_char *local_list(snac *snac, int max);