5 static char *threadid(char *, char *);
8 getthreadid(const char *path)
11 char *referens = NULL;
13 struct field f = {{0}};
14 enum state state = FLD2;
15 FILE *file = fopen(path, "r");
17 while (state == FLD2 && !msgid && !referens) {
18 switch (state = m_getfld2(state, &f, file)) {
20 if (strncasecmp("message-id", f.name, f.namelen)==0) {
23 } else if (strncasecmp("references", f.name, f.namelen)==0) {
34 ret = threadid(msgid, referens);
43 threadid(char *msgid, char *referens)
49 threadfrom = referens ? referens : msgid;
51 start = strchr(threadfrom, '<');
52 end = strchr(start, '>');
53 if (!(*start) || !(*end)) {
57 cp = mh_xstrdup(start + 1);