X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fforwsbr.c;h=79dfd10b350f2ecd74a5d0393aca75ebf16f4a88;hb=a6f717992d5588898c37711aa1895dbb11016e1c;hp=20879ec7860182a9051b565d5b7149641e25f5e4;hpb=9e1f6d6d4c2e154c7274e7fb3f1931924e458b17;p=mmh diff --git a/uip/forwsbr.c b/uip/forwsbr.c old mode 100755 new mode 100644 index 20879ec..79dfd10 --- a/uip/forwsbr.c +++ b/uip/forwsbr.c @@ -21,6 +21,26 @@ static char msgbuf[256]; #define COMPFREE(c) if (c->c_text) free(c->c_text) +/* + * A list of components we treat as addresses + */ + +static char *addrcomps[] = { + "from", + "sender", + "reply-to", + "to", + "cc", + "bcc", + "resent-from", + "resent-sender", + "resent-reply-to", + "resent-to", + "resent-cc", + "resent-bcc", + NULL +}; + int build_form (char *form, char *digest, int *dat, char *from, char *to, char *cc, char *fcc, char *subject, char *inputfile) @@ -29,7 +49,7 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, int fmtsize, state, char_read = 0; unsigned i; register char *nfs; - char *line, tmpfil[BUFSIZ], name[NAMESZ]; + char *line, tmpfil[BUFSIZ], name[NAMESZ], **ap; FILE *tmp; register struct comp *cptr; struct format *fmt; @@ -50,6 +70,16 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, (void) fmt_compile (nfs, &fmt); /* + * Mark any components tagged as address components + */ + + for (ap = addrcomps; *ap; ap++) { + FINDCOMP (cptr, *ap); + if (cptr) + cptr->c_type |= CT_ADDR; + } + + /* * Process our message and save all relevant components * * A lot of this is taken from replsbr.c; should we try to merge @@ -71,9 +101,7 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, if (mh_strcasecmp(name, cptr->c_name) == 0) { char_read += msg_count; if (! cptr->c_text) { - i = strlen(cptr->c_text = strdup(msgbuf)) - 1; - if (cptr->c_text[i] == '\n') - cptr->c_text[i] = '\0'; + cptr->c_text = strdup(msgbuf); } else { i = strlen(cptr->c_text) - 1; if (cptr->c_text[i] == '\n') {