|
|
@ -242,6 +242,22 @@ find_roots()
|
|
|
|
top->next = 0;
|
|
|
|
top->next = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
|
|
|
prune_tree(struct container *c, int depth)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
|
|
|
if (c->child)
|
|
|
|
|
|
|
|
prune_tree(c->child, depth+1);
|
|
|
|
|
|
|
|
if (!c->file && c->child && !c->child->next) {
|
|
|
|
|
|
|
|
// turn into child if we don't exist and only have a child
|
|
|
|
|
|
|
|
c->mid = c->child->mid;
|
|
|
|
|
|
|
|
c->file = c->child->file;
|
|
|
|
|
|
|
|
c->msg = c->child->msg;
|
|
|
|
|
|
|
|
c->child = c->child->child;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} while ((c = c->next));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
|
print_tree(struct container *c, int depth)
|
|
|
|
print_tree(struct container *c, int depth)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -267,7 +283,7 @@ main(int argc, char *argv[])
|
|
|
|
int i = blaze822_loop(argc-1, argv+1, thread);
|
|
|
|
int i = blaze822_loop(argc-1, argv+1, thread);
|
|
|
|
|
|
|
|
|
|
|
|
find_roots();
|
|
|
|
find_roots();
|
|
|
|
|
|
|
|
prune_tree(top, -1);
|
|
|
|
print_tree(top, -1);
|
|
|
|
print_tree(top, -1);
|
|
|
|
|
|
|
|
|
|
|
|
fprintf(stderr, "%d mails threaded\n", i);
|
|
|
|
fprintf(stderr, "%d mails threaded\n", i);
|
|
|
|