refile: Never change the current folder
[mmh] / uip / repl.c
index fa1a7b4..e3028fa 100644 (file)
@@ -151,7 +151,7 @@ main(int argc, char **argv)
        /* read user profile/context */
        context_read();
 
-       filter = getcpy(etcpath(mhlreply));
+       filter = mh_xstrdup(etcpath(mhlreply));
 
        arguments = getarguments(invo_name, argc, argv, 1);
        argp = arguments;
@@ -223,7 +223,7 @@ main(int argc, char **argv)
                                if (!(cp = *argp++) || *cp == '-')
                                        adios(EX_USAGE, NULL, "missing argument to %s",
                                                        argp[-2]);
-                               file = getcpy(expanddir(cp));
+                               file = mh_xstrdup(expanddir(cp));
                                continue;
                        case FORMSW:
                                if (!(form = *argp++) || *form == '-')
@@ -235,7 +235,7 @@ main(int argc, char **argv)
                                if (!(cp = *argp++) || *cp == '-')
                                        adios(EX_USAGE, NULL, "missing argument to %s",
                                                        argp[-2]);
-                               filter = getcpy(etcpath(cp));
+                               filter = mh_xstrdup(etcpath(cp));
                                continue;
                        case NFILTSW:
                                filter = NULL;
@@ -261,7 +261,7 @@ main(int argc, char **argv)
                        if (folder)
                                adios(EX_USAGE, NULL, "only one folder at a time!");
                        else
-                               folder = getcpy(expandfol(cp));
+                               folder = mh_xstrdup(expandfol(cp));
                } else {
                        if (msg)
                                adios(EX_USAGE, NULL, "only one message at a time!");
@@ -277,7 +277,7 @@ main(int argc, char **argv)
        if (ccme == -1)
                ccme = groupreply;
 
-       cwd = getcpy(pwd());
+       cwd = mh_xstrdup(pwd());
 
        if (file && (msg || folder))
                adios(EX_USAGE, NULL, "can't mix files and folders/msgs");
@@ -331,7 +331,7 @@ main(int argc, char **argv)
                context_save();  /* save the context file   */
        }
 
-       msg = file ? file : getcpy(m_name(mp->lowsel));
+       msg = file ? file : mh_xstrdup(m_name(mp->lowsel));
 
        if ((in = fopen(msg, "r")) == NULL)
                adios(EX_IOERR, msg, "unable to open");
@@ -412,10 +412,8 @@ replout(FILE *inb, char *drft, struct msgs *mp,
        /* compile format string */
        ncomps = fmt_compile(cp, &fmt) + 1;
 
-       nxtbuf = compbuffers = (char **)
-                       mh_xcalloc((size_t) ncomps, sizeof(char *));
-       savecomp = used_buf = (struct comp **)
-                       mh_xcalloc((size_t) (ncomps+1), sizeof(struct comp *));
+       nxtbuf = compbuffers = mh_xcalloc(ncomps, sizeof(char *));
+       savecomp = used_buf = mh_xcalloc(ncomps+1, sizeof(struct comp *));
        savecomp += ncomps + 1;
        *--savecomp = NULL;  /* point at zero'd end minus 1 */
 
@@ -447,7 +445,7 @@ replout(FILE *inb, char *drft, struct msgs *mp,
        if ((cp = getenv("USER"))) {
                FINDCOMP(cptr, "user");
                if (cptr)
-                       cptr->c_text = getcpy(cp);
+                       cptr->c_text = mh_xstrdup(cp);
        }
        if (!ccme)
                ismymbox(NULL);
@@ -538,12 +536,12 @@ finished:
                }
                if (sp != cptr->c_text) {
                        cp = cptr->c_text;
-                       cptr->c_text = getcpy(sp);
-                       free(cp);
+                       cptr->c_text = mh_xstrdup(sp);
+                       mh_free0(&cp);
                }
        }
        i = format_len + char_read + 256;
-       scanl = mh_xcalloc((size_t) i + 2, sizeof(char));
+       scanl = mh_xcalloc(i + 2, sizeof(char));
        dat[0] = 0;
        dat[1] = 0;
        dat[2] = 0;
@@ -584,14 +582,14 @@ finished:
        }
 
        /* return dynamically allocated buffers */
-       free(scanl);
+       mh_free0(&scanl);
        for (nxtbuf = compbuffers, i = ncomps; (cptr = *savecomp++);
                        nxtbuf++, i--)
-               free(cptr->c_text);  /* if not nxtbuf, nxtbuf already freed */
+               mh_free0(&(cptr->c_text));  /* if not nxtbuf, nxtbuf already freed */
        while ( i-- > 0)
-               free(*nxtbuf++);  /* free unused nxtbufs */
-       free((char *) compbuffers);
-       free((char *) used_buf);
+               mh_free0(nxtbuf++);  /* free unused nxtbufs */
+       mh_free0(&compbuffers);
+       mh_free0(&used_buf);
 }
 
 static char *buf;  /* our current working buffer */
@@ -627,7 +625,7 @@ static unsigned int bufsiz=0;  /* current size of buf */
 ** returns a pointer to the concatenated address string.
 **
 ** We try to not do a lot of malloc/copy/free's (which is why we
-** don't call "getcpy") but still place no upper limit on the
+** don't call "mh_xstrdup") but still place no upper limit on the
 ** length of the result string.
 **
 ** This routine is an override for the equally named one in sbr/fmt_addr.c.