*/
#include <h/mh.h>
-#include <h/mts.h>
#include <h/utils.h>
/*
** the eom() macro returns FALSE saying we aren't at the end of the
** message.
**
-** The next thing to do is to read the mts.conf file and initialize
-** delimiter[] and delimlen accordingly...
-**
** After mhl was made a built-in in msh, m_getfld() worked just fine
** (using m_unknown() at startup). Until one day: a message which was
** the result of a bursting was shown. Then, since the burst boundaries
** the code gets executed is when inc (or msh) calls it, and both of these
** have already called mts_init().
**
+** [ Note by meillo 2012-02:
+** MMDF-style maildrops (4x ^A) and mts_init() were removed. ]
+**
** ------------------------
** (Written by Van Jacobson for the mh6 m_getfld, January, 1986):
**
return (state);
}
-
-#ifdef RPATHS
static char unixbuf[BUFSIZ] = "";
-#endif /* RPATHS */
void
m_unknown(FILE *iob)
&& strncmp(text, "From ", 5) == 0) {
msg_style = MS_MBOX;
delimstr = "\nFrom ";
-#ifndef RPATHS
- while ((c = getc(iob)) != '\n' && c >= 0)
- ;
-#else /* RPATHS */
cp = unixbuf;
while ((c = getc(iob)) != '\n' && cp - unixbuf < BUFSIZ - 1)
*cp++ = c;
*cp = 0;
-#endif /* RPATHS */
} else {
/* not a Unix style maildrop */
adios(NULL, "No Unix style (mbox) maildrop.");
register long pos = 0L;
register int i;
char text[10];
-#ifdef RPATHS
register char *cp;
-#endif /* RPATHS */
pos = ftell(iob);
if ((i = fread(text, sizeof *text, edelimlen, iob)) != edelimlen
}
if (msg_style == MS_MBOX) {
-#ifndef RPATHS
- while ((c = getc(iob)) != '\n')
- if (c < 0)
- break;
-#else /* RPATHS */
cp = unixbuf;
while ((c = getc(iob)) != '\n' && c >= 0 && cp - unixbuf < BUFSIZ - 1)
*cp++ = c;
*cp = 0;
-#endif /* RPATHS */
}
return 1;
}
-#ifdef RPATHS
/*
** Return the Return-Path and Delivery-Date
** header information.
**
-** Currently, I'm assuming that the "From " line
-** takes one of the following forms.
-**
-** From sender date remote from host (for UUCP delivery)
-** From sender@host date (for sendmail delivery)
+** Currently, I'm assuming that the "From " line takes the following form:
+** "From" sender@host date (sendmail delivery)
*/
-
int
get_returnpath(char *rp, int rplen, char *dd, int ddlen)
{
- char *ap, *bp, *cp, *dp;
+ char *ap, *bp;
ap = unixbuf;
- if (!(bp = cp = strchr(ap, ' ')))
+ if (!(bp = strchr(ap, ' ')))
return 0;
- /*
- ** Check for "remote from" in envelope to see
- ** if this message uses UUCP style addressing
- */
- while ((cp = strchr(++cp, 'r'))) {
- if (strncmp(cp, "remote from", 11) == 0) {
- cp = strrchr(cp, ' ');
- break;
- }
- }
-
- /*
- ** Get the Return-Path information from
- ** the "From " envelope.
- */
- if (cp) {
- /* return path for UUCP style addressing */
- dp = strchr(++cp, '\n');
- snprintf(rp, rplen, "%.*s!%.*s\n", (int)(dp - cp), cp, (int)(bp - ap), ap);
- } else {
- /* return path for standard domain addressing */
- snprintf(rp, rplen, "%.*s\n", (int)(bp - ap), ap);
- }
+ /* Get the Return-Path information from the "From " envelope. */
+ snprintf(rp, rplen, "%.*s\n", (int)(bp - ap), ap);
/*
** advance over the spaces to get to
/* Now get delivery date from envelope */
snprintf(dd, ddlen, "%.*s\n", 24, bp);
- unixbuf[0] = 0;
+ *unixbuf = '\0';
return 1;
}
-#endif /* RPATHS */
static unsigned char *