replout (FILE *inb, char *msg, char *drft, struct msgs *mp, int outputlinelen,
int mime, char *form, char *filter, char *fcc, int fmtproc)
{
- register int state, i;
- register struct comp *cptr;
+ int state, i;
+ struct comp *cptr;
char tmpbuf[SBUFSIZ];
struct format *fmt;
- register char **ap;
+ char **ap;
int char_read = 0, format_len, mask;
- char name[NAMESZ], *scanl, *cp;
+ char name[NAMESZ], *cp;
+ charstring_t scanl;
static int dat[5]; /* aux. data for format routine */
m_getfld_state_t gstate = 0;
struct fmt_callbacks cb;
if (!ccto) {
cptr = fmt_findcomp ("to");
if (cptr)
- cptr->c_name = getcpy(NULL);
+ cptr->c_name = mh_xstrdup("");
}
if (!cccc) {
cptr = fmt_findcomp("cc");
if (cptr)
- cptr->c_name = getcpy(NULL);
+ cptr->c_name = mh_xstrdup("");
}
/* set up the "fcc" pseudo-component */
if (fcc) {
cptr = fmt_findcomp ("fcc");
if (cptr)
- cptr->c_text = getcpy (fcc);
+ cptr->c_text = mh_xstrdup(fcc);
}
if ((cp = getenv("USER"))) {
cptr = fmt_findcomp ("user");
if (cptr)
- cptr->c_text = getcpy(cp);
+ cptr->c_text = mh_xstrdup(cp);
}
if (!ccme)
ismymbox (NULL);
*/
cptr = fmt_findcomp ("subject");
if (cptr && (cp = cptr->c_text)) {
- register char *sp = cp;
+ char *sp = cp;
for (;;) {
while (isspace((unsigned char) *cp))
}
if (sp != cptr->c_text) {
cp = cptr->c_text;
- cptr->c_text = getcpy (sp);
+ cptr->c_text = mh_xstrdup(sp);
free (cp);
}
}
i = format_len + char_read + 256;
- scanl = mh_xmalloc ((size_t) i + 2);
+ scanl = charstring_create (i + 2);
dat[0] = 0;
dat[1] = 0;
dat[2] = 0;
memset(&cb, 0, sizeof(cb));
cb.formataddr = replformataddr;
cb.concataddr = replconcataddr;
- fmt_scan (fmt, scanl, i + 1, i, dat, &cb);
- fputs (scanl, out);
+ fmt_scan (fmt, scanl, i, dat, &cb);
+ fputs (charstring_buffer (scanl), out);
if (badaddrs) {
fputs ("\nrepl: bad addresses:\n", out);
fputs ( badaddrs, out);
fclose (out);
/* return dynamically allocated buffers */
- free (scanl);
+ charstring_free (scanl);
fmt_free(fmt, 1);
}
static char *
replformataddr (char *orig, char *str)
{
- register int len;
+ int len;
char baddr[BUFSIZ], error[BUFSIZ];
- register int isgroup;
- register char *dst;
- register char *cp;
- register char *sp;
- register struct mailname *mp = NULL;
+ int isgroup;
+ char *dst;
+ char *cp;
+ char *sp;
+ struct mailname *mp = NULL;
char *fixed_str = fix_addresses (str);
/* if we don't have a buffer yet, get one */
insert (struct mailname *np)
{
char buffer[BUFSIZ];
- register struct mailname *mp;
+ struct mailname *mp;
if (nodupcheck)
return 1;
return 0;
if (querysw) {
- /* Don't change the "Reply to %s? " prompt format, so that
- scripts can rely on it. */
snprintf (buffer, sizeof(buffer), "Reply to %s? ", adrformat (np));
- if (!gans (buffer, anoyes))
+ if (!read_switch (buffer, anoyes))
return 0;
}
mp->m_next = np;
execvp (mhl, arglist);
errstr = strerror(errno);
- write(2, "unable to exec ", 15);
- write(2, mhlproc, strlen(mhlproc));
- write(2, ": ", 2);
- write(2, errstr, strlen(errstr));
- write(2, "\n", 1);
+ if (write(2, "unable to exec ", 15) < 0 ||
+ write(2, mhlproc, strlen(mhlproc)) < 0 ||
+ write(2, ": ", 2) < 0 ||
+ write(2, errstr, strlen(errstr)) < 0 ||
+ write(2, "\n", 1) < 0) {
+ advise ("stderr", "write");
+ }
_exit (-1);
default:
* local part.
*/
while ((cp = getname (str))) {
- struct adr_node *adr_nodep = mh_xmalloc (sizeof *adr_nodep);
+ struct adr_node *adr_nodep;
char error[BUFSIZ];
struct mailname *mp;
+ NEW(adr_nodep);
adr_nodep->adr = strdup (cp);
adr_nodep->escape_local_part = 0;
adr_nodep->fixed = 0;
if (fixed_address) {
return fixed_str;
- } else {
- free (fixed_str);
- return str ? strdup (str) : NULL;
}
+ free (fixed_str);
+ return str ? strdup (str) : NULL;
}