slocal: use mhetcdir instead of NMHETCDIR.
[mmh] / uip / slocal.c
index 3713954..eecd760 100644 (file)
@@ -86,10 +86,6 @@ static struct swit switches[] = {
 };
 
 
-/* global maildelivery file */
-char *maildelivery = NMHETCDIR"/maildelivery";
-
-
 static int globbed = 0;  /* have we built "vars" table yet? */
 static int parsed = 0;  /* have we built header field table yet */
 static int utmped = 0;  /* have we scanned umtp(x) file yet */
@@ -437,12 +433,15 @@ main(int argc, char **argv)
 static int
 localmail(int fd, char *mdlvr)
 {
+       char buf[BUFSIZ];
+
        /* delivery according to personal Maildelivery file */
        if (usr_delivery(fd, mdlvr ? mdlvr : ".maildelivery", 0) != -1) {
                return 0;
        }
        /* delivery according to global Maildelivery file */
-       if (usr_delivery(fd, maildelivery, 1) != -1) {
+       snprintf(buf, sizeof buf, "%s/%s", mhetcdir, "maildelivery");
+       if (usr_delivery(fd, buf, 1) != -1) {
                return 0;
        }
        if (verbose) {
@@ -1318,7 +1317,7 @@ you_lose:
                if (first) {
                        first = 0;
                        if (strncmp(buffer, "From ", i)==0) {
-                               char *fp, *cp, *hp, *ep;
+                               char *fp, *cp;
                                /*
                                ** get copy of envelope information
                                ** ("From " line)
@@ -1329,27 +1328,10 @@ you_lose:
                                ** Now create a "Return-Path:" line
                                ** from the "From " line.
                                */
-                               hp = cp = strchr(fp = envelope + i, ' ');
-                               while ((hp = strchr(++hp, 'r'))) {
-                                       if (uprf(hp, "remote from")) {
-                                               hp = strrchr(hp, ' ');
-                                               break;
-                                       }
-                               }
-                               if (hp) {
-                                       /*
-                                       ** return path for UUCP style
-                                       ** addressing
-                                       */
-                                       ep = strchr(++hp, '\n');
-                                       snprintf(buffer, sizeof(buffer), "Return-Path: %.*s!%.*s\n", (int)(ep - hp), hp, (int)(cp - fp), fp);
-                               } else {
-                                       /*
-                                       ** return path for standard domain
-                                       ** addressing
-                                       */
-                                       snprintf(buffer, sizeof(buffer), "Return-Path: %.*s\n", (int)(cp - fp), fp);
-                               }
+                               cp = strchr(fp = envelope + i, ' ');
+                               snprintf(buffer, sizeof(buffer),
+                                               "Return-Path: %.*s\n",
+                                               (int)(cp - fp), fp);
 
                                /* Add Return-Path header to message */
                                fputs(buffer, ffp);