static void test10() { struct imap_refmsgtable *mt=rfc822_threadalloc(); rfc822_threadmsg(mt, "<message1>", NULL, "subject 1", "Thu, 20 Jun 2000 14:41:58 -0700", 1); rfc822_threadmsg(mt, "<message4>", "<message1>", "subject 2", "Thu, 21 Jun 2000 14:41:58 -0700", 6); rfc822_threadmsg(mt, "<message1>", NULL, "subject 2", "Thu, 21 Jun 2000 14:41:58 -0700", 5); rfc822_threadmsg(mt, "<message4>", "<message1>", "subject 2", "Thu, 21 Jun 2000 14:41:58 -0700", 6); rfc822_threadprune(mt); rfc822_threadsortsubj(rfc822_threadgetroot(mt)); rfc822_threadgathersubj(mt, rfc822_threadgetroot(mt)); rfc822_threadmergesubj(mt, rfc822_threadgetroot(mt)); rfc822_threadsortbydate(mt); prpc(mt); rfc822_threadfree(mt); }
static void test5() { struct imap_refmsgtable *mt=rfc822_threadalloc(); rfc822_threadmsg(mt, "<4>", "<1> <2> <3>", "subject 1", "Thu, 29 Jun 2000 14:41:58 -0700", 1); rfc822_threadmsg(mt, "<3>", NULL, "subject 1", "Thu, 29 Jun 2000 14:41:58 -0700", 1); prpc(mt); rfc822_threadprune(mt); prpc(mt); rfc822_threadfree(mt); }
struct imap_refmsg *rfc822_thread(struct imap_refmsgtable *mt) { if (!mt->rootptr) { rfc822_threadprune(mt); if ((mt->rootptr=rfc822_threadgetroot(mt)) == 0) return (0); if (rfc822_threadsortsubj(mt, mt->rootptr) || rfc822_threadmergesubj(mt, mt->rootptr) || rfc822_threadsortbydate(mt)) { mt->rootptr=0; return (0); } } return (mt->rootptr); }
static void test7() { struct imap_refmsgtable *mt=rfc822_threadalloc(); rfc822_threadmsg(mt, "<message1>", "<message1-dummy>", "subject 1", "Thu, 29 Jun 2000 14:41:58 -0700", 1); rfc822_threadmsg(mt, "<message2>", "<message2-dummy>", "subject 1", "Thu, 29 Jun 2000 14:41:58 -0700", 1); rfc822_threadprune(mt); rfc822_threadsortsubj(rfc822_threadgetroot(mt)); rfc822_threadgathersubj(mt, rfc822_threadgetroot(mt)); prpc(mt); prsubj(mt); rfc822_threadmergesubj(mt, rfc822_threadgetroot(mt)); prpc(mt); rfc822_threadfree(mt); }
static void test6() { struct imap_refmsgtable *mt=rfc822_threadalloc(); rfc822_threadmsg(mt, "<message1>", NULL, "subject 1", "Thu, 29 Jun 2000 14:41:58 -0700", 1); rfc822_threadmsg(mt, "<message10>", NULL, "subject 2", "Thu, 29 Jun 2000 14:41:58 -0700", 2); rfc822_threadmsg(mt, "<message3>", "<message2>", "subject 1", "Thu, 29 Jun 2000 14:41:58 -0700", 3); rfc822_threadmsg(mt, "<message11>", NULL, "Re: subject 4", "Thu, 29 Jun 2000 14:41:58 -0700", 4); rfc822_threadmsg(mt, "<message12>", NULL, "subject 4", "Thu, 29 Jun 2000 14:41:58 -0700", 5); rfc822_threadmsg(mt, "<message13>", NULL, "subject 5", "Thu, 29 Jun 2000 14:41:58 -0700", 6); rfc822_threadmsg(mt, "<message14>", NULL, "re: subject 5", "Thu, 29 Jun 2000 14:41:58 -0700", 7); rfc822_threadprune(mt); rfc822_threadsortsubj(rfc822_threadgetroot(mt)); rfc822_threadgathersubj(mt, rfc822_threadgetroot(mt)); prpc(mt); prsubj(mt); rfc822_threadfree(mt); }
static void test9() { struct imap_refmsgtable *mt=rfc822_threadalloc(); rfc822_threadmsg(mt, "<message1>", NULL, "subject 1", "Thu, 20 Jun 2000 14:41:55 -0700", 1); rfc822_threadmsg(mt, "<message2>", NULL, "subject 1", "Thu, 19 Jun 2000 14:41:51 -0700", 2); rfc822_threadmsg(mt, "<message3>", NULL, "subject 1", "Thu, 21 Jun 2000 14:41:56 -0700", 3); rfc822_threadmsg(mt, "<message4>", "<message2>", "subject 2", "Thu, 21 Jun 2000 14:41:54 -0700", 6); rfc822_threadmsg(mt, "<message5>", "<message2>", "subject 2", "Thu, 21 Jun 2000 14:41:53 -0700", 5); rfc822_threadmsg(mt, "<message6>", "<message2>", "subject 2", "Thu, 20 Jun 2000 14:41:52 -0700", 4); rfc822_threadprune(mt); rfc822_threadsortsubj(rfc822_threadgetroot(mt)); rfc822_threadgathersubj(mt, rfc822_threadgetroot(mt)); rfc822_threadmergesubj(mt, rfc822_threadgetroot(mt)); rfc822_threadsortbydate(mt); prpc(mt); rfc822_threadfree(mt); }
static void test8() { struct imap_refmsgtable *mt=rfc822_threadalloc(); rfc822_threadmsg(mt, "<message4>", NULL, "subject 2", "Thu, 29 Jun 2000 14:41:51 -0700", 1); rfc822_threadmsg(mt, "<message2>", NULL, "subject 1", "Thu, 29 Jun 2000 14:41:52 -0700", 1); rfc822_threadmsg(mt, "<message1>", "<message1-dummy>", "subject 1", "Thu, 29 Jun 2000 14:41:53 -0700", 1); rfc822_threadmsg(mt, "<message3>", NULL, "Re: subject 2", "Thu, 29 Jun 2000 14:41:54 -0700", 1); rfc822_threadmsg(mt, "<message10>", NULL, "subject 10", "Thu, 29 Jun 2000 14:41:55 -0700", 1); rfc822_threadmsg(mt, "<message11>", NULL, "subject 10", "Thu, 29 Jun 2000 14:41:56 -0700", 1); rfc822_threadprune(mt); rfc822_threadsortsubj(rfc822_threadgetroot(mt)); rfc822_threadgathersubj(mt, rfc822_threadgetroot(mt)); prpc(mt); prsubj(mt); rfc822_threadmergesubj(mt, rfc822_threadgetroot(mt)); prpc(mt); rfc822_threadfree(mt); }