;
if (c < 0 || (c = getc(iob)) < 0 || eom(c, iob)) {
- if (! eom_action) {
+ if (!eom_action) {
/* flush null messages */
while ((c = getc(iob)) >= 0 && eom(c, iob))
;
return (state);
}
-static char unixbuf[BUFSIZ] = "";
+static char fromline[BUFSIZ] = "";
void
m_unknown(FILE *iob)
}
ismbox = TRUE;
delimstr = "\nFrom ";
- cp = unixbuf;
- while ((c = getc(iob)) != '\n' && cp - unixbuf < BUFSIZ - 1)
+ cp = fromline;
+ while ((c = getc(iob)) != '\n' && cp - fromline < BUFSIZ - 1)
*cp++ = c;
*cp = '\0';
register char *cp;
pos = ftell(iob);
- if ((i = fread(text, sizeof *text, edelimlen, iob)) != edelimlen
- || (strncmp(text, (char *)edelim, edelimlen)!=0)) {
+ if ((i = fread(text, sizeof *text, edelimlen, iob)) != edelimlen ||
+ (strncmp(text, (char *)edelim, edelimlen)!=0)) {
if (i == 0 && ismbox)
/*
** the final newline in the (brain damaged) unix-format
}
if (ismbox) {
- cp = unixbuf;
- while ((c = getc(iob)) != '\n' && c >= 0 && cp - unixbuf < BUFSIZ - 1)
+ cp = fromline;
+ while ((c = getc(iob)) != '\n' && c >= 0 && cp - fromline < BUFSIZ - 1)
*cp++ = c;
- *cp = 0;
+ *cp = '\0';
}
return 1;
/*
-** Return the Return-Path and Delivery-Date
-** header information.
+** Return the Return-Path and Delivery-Date header information.
**
** 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;
+ char *cp;
- ap = unixbuf;
- if (!(bp = strchr(ap, ' ')))
+ if (!(cp = strchr(fromline, ' '))) {
return 0;
-
- /* 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
- ** delivery date on envelope
- */
- while (*bp == ' ')
- bp++;
-
- /* Now get delivery date from envelope */
- snprintf(dd, ddlen, "%.*s\n", 24, bp);
-
- *unixbuf = '\0';
+ }
+ /* Extract the Return-Path. */
+ snprintf(rp, rplen, "%.*s\n", (int)(cp - fromline), fromline);
+ /* Advance over the whitespace. */
+ while (*cp == ' ' || *cp == '\t') {
+ cp++;
+ }
+ /* Extract the Delivery-Date. */
+ snprintf(dd, ddlen, "%.*s\n", 24, cp);
+ *fromline = '\0';
return 1;
}