--- struct.c Tue Apr 10 19:03:16 2001 +++ struct.c.fixed Thu Apr 12 17:23:04 2001 @@ -483,22 +483,23 @@ s = emalloc(strlen(subject) + 1); saved_s = strcpy(s, subject); - do { + if (isre(s, NULL)) + do { #if DEBUG_THREAD > 1 - fprintf(stderr, "extra %s\n", s); + fprintf(stderr, "extra %s\n", s); #endif - ep = etable[hash(s)]; - while (ep != NULL) { - if ((strcasecmp(s, ep->data->subject) == 0) && - (msgnum != ep->data->msgnum)) { - match = 1; - if (ep->data->msgnum < lowest_so_far) - lowest_so_far = ep->data->msgnum; - } - ep = ep->next; - } - s = oneunre(s); - } while (s != NULL); + ep = etable[hash(s)]; + while (ep != NULL) { + if ((strcasecmp(s, ep->data->subject) == 0) && + (msgnum != ep->data->msgnum)) { + match = 1; + if (ep->data->msgnum < lowest_so_far) + lowest_so_far = ep->data->msgnum; + } + ep = ep->next; + } + s = oneunre(s); + } while (s != NULL); free(saved_s);