]> diplodocus.org Git - nmh/blobdiff - uip/replsbr.c
Make snoop work like it used to for SMTP.
[nmh] / uip / replsbr.c
index d3ba2709698c622a718a98dde7a4d414456779cd..05997fdca0f51fb9ff4ae9ff045c5bebd058db38 100644 (file)
@@ -8,6 +8,7 @@
 #include <h/mh.h>
 #include <h/addrsbr.h>
 #include <h/fmt_scan.h>
+#include "h/done.h"
 #include <h/utils.h>
 #include <sys/file.h>          /* L_SET */
 
@@ -161,7 +162,7 @@ finished:
     /* set up the "fcc" pseudo-component */
     cptr = fmt_findcomp ("fcc");
     if (cptr) {
-       mh_xfree(cptr->c_text);
+       free(cptr->c_text);
        if (fcc)
            cptr->c_text = mh_xstrdup(fcc);
        else
@@ -169,7 +170,7 @@ finished:
     }
     cptr = fmt_findcomp ("user");
     if (cptr) {
-       mh_xfree(cptr->c_text);
+       free(cptr->c_text);
        if ((cp = getenv("USER")))
            cptr->c_text = mh_xstrdup(cp);
        else
@@ -205,7 +206,7 @@ finished:
     dat[2] = 0;
     dat[3] = outputlinelen;
     dat[4] = 0;
-    memset(&cb, 0, sizeof(cb));
+    ZERO(&cb);
     cb.formataddr = replformataddr;
     cb.concataddr = replconcataddr;
     fmt_scan (fmt, scanl, i, dat, &cb);
@@ -345,7 +346,7 @@ replformataddr (char *orig, char *str)
 
     *dst = '\0';
     last_dst = dst;
-    return (buf);
+    return buf;
 }
 
 
@@ -470,12 +471,13 @@ replfilter (FILE *in, FILE *out, char *filter, int fmtproc)
                write(2, "\n", 1) < 0) {
                advise ("stderr", "write");
            }
-           _exit (-1);
+           _exit(1);
 
        default:
            if (pidXwait (pid, mhl))
                done (1);
            fseek (out, 0L, SEEK_END);
+            arglist_free(mhl, arglist);
            break;
     }
 }