*
* This prevents the component from being found via fmt_findcomp(),
* which makes sure no text gets added to it when the message is processed.
- *
- * getcpy(NULL) returns a malloc'd zero-length string, so it can safely
- * be free()'d later.
*/
if (!ccto) {
cptr = fmt_findcomp ("to");
if (cptr)
cptr->c_name = mh_xstrdup("");
}
- /* set up the "fcc" pseudo-component */
- if (fcc) {
- cptr = fmt_findcomp ("fcc");
- if (cptr)
- cptr->c_text = mh_xstrdup(fcc);
- }
- if ((cp = getenv("USER"))) {
- cptr = fmt_findcomp ("user");
- if (cptr)
- cptr->c_text = mh_xstrdup(cp);
- }
if (!ccme)
ismymbox (NULL);
int msg_count = sizeof tmpbuf;
state = m_getfld (&gstate, name, tmpbuf, &msg_count, inb);
switch (state) {
- case FLD:
- case FLDPLUS:
+ case FLD:
+ case FLDPLUS:
/*
* if we're interested in this component, save a pointer
* to the component text, then start using our next free
}
break;
- case LENERR:
- case FMTERR:
- case BODY:
+ case LENERR:
+ case FMTERR:
+ case BODY:
case FILEEOF:
goto finished;
- default:
+ default:
adios (NULL, "m_getfld() returned %d", state);
}
}
finished:
m_getfld_state_destroy (&gstate);
+ /* set up the "fcc" pseudo-component */
+ cptr = fmt_findcomp ("fcc");
+ if (cptr) {
+ mh_xfree(cptr->c_text);
+ if (fcc)
+ cptr->c_text = mh_xstrdup(fcc);
+ else
+ cptr->c_text = NULL;
+ }
+ cptr = fmt_findcomp ("user");
+ if (cptr) {
+ mh_xfree(cptr->c_text);
+ if ((cp = getenv("USER")))
+ cptr->c_text = mh_xstrdup(cp);
+ else
+ cptr = NULL;
+ }
+
/*
* if there's a "Subject" component, strip any "Re:"s off it
*/
arglist = argsplit(mhlproc, &mhl, &argnum);
switch (pid = fork()) {
- case NOTOK:
+ case NOTOK:
adios ("fork", "unable to");
- case OK:
+ case OK:
dup2 (fileno (in), fileno (stdin));
dup2 (fileno (out), fileno (stdout));
closefds (3);
}
_exit (-1);
- default:
+ default:
if (pidXwait (pid, mhl))
done (1);
fseek (out, 0L, SEEK_END);
const char *no_at_sign = "no at-sign after local-part";
adr_nodep->escape_local_part =
- ! strncmp (error, no_at_sign, strlen (no_at_sign));
+ has_prefix(error, no_at_sign);
} else {
mnfree (mp);
}