From 5e8e1811bd39ba43dda7a3446694474ab16ab960 Mon Sep 17 00:00:00 2001 From: markus schnalke Date: Sat, 24 Mar 2012 18:13:34 +0100 Subject: [PATCH] s/unixbuf/fromline/ and minor refactoring. --- sbr/m_getfld.c | 51 ++++++++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/sbr/m_getfld.c b/sbr/m_getfld.c index cefedec..548b3ea 100644 --- a/sbr/m_getfld.c +++ b/sbr/m_getfld.c @@ -236,7 +236,7 @@ m_getfld(int state, unsigned char *name, unsigned char *buf, ; 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)) ; @@ -612,7 +612,7 @@ finish: return (state); } -static char unixbuf[BUFSIZ] = ""; +static char fromline[BUFSIZ] = ""; void m_unknown(FILE *iob) @@ -644,8 +644,8 @@ 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'; @@ -687,8 +687,8 @@ m_Eom(int c, FILE *iob) 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 @@ -702,10 +702,10 @@ m_Eom(int c, FILE *iob) } 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; @@ -713,8 +713,7 @@ m_Eom(int c, FILE *iob) /* -** 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) @@ -722,26 +721,20 @@ m_Eom(int c, FILE *iob) 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; } -- 1.7.10.4