X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/105395ab9b3fb60628ff27062b6ce3f1f968021f..e65127948:/uip/scansbr.c?ds=inline diff --git a/uip/scansbr.c b/uip/scansbr.c index 3c6b771d..2ef32c4e 100644 --- a/uip/scansbr.c +++ b/uip/scansbr.c @@ -75,7 +75,7 @@ scan (FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, width = INT_MAX; } dat[3] = slwidth = width; - *scanl = charstring_create (width); + *scanl = charstring_create (width < NMH_BUFSIZ ? width : NMH_BUFSIZ); if (outnum) umask(~m_gmprot()); @@ -126,15 +126,17 @@ scan (FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, * and it's our responsibility to free it. */ - nxtbuf = compbuffers = (char **) calloc((size_t) ncomps, sizeof(char *)); + nxtbuf = compbuffers = (char **) mh_xcalloc ((size_t) ncomps, sizeof(char *)); if (nxtbuf == NULL) adios (NULL, "unable to allocate component buffers"); - used_buf = (struct comp **) calloc((size_t) (ncomps+1), + used_buf = (struct comp **) mh_xcalloc ((size_t) (ncomps+1), sizeof(struct comp *)); if (used_buf == NULL) adios (NULL, "unable to allocate component buffer stack"); used_buf += ncomps+1; *--used_buf = 0; - rlwidth = bodycomp && (width > SBUFSIZ) ? min (width, BUFSIZ) : SBUFSIZ; + rlwidth = bodycomp && (width > SBUFSIZ) + ? min (width, NMH_BUFSIZ) + : SBUFSIZ; for (i = ncomps; i--; ) *nxtbuf++ = mh_xmalloc(rlwidth); } @@ -218,7 +220,6 @@ scan (FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, break; case BODY: - compnum = -1; /* * A slight hack ... if we have less than rlwidth characters * in the buffer, call m_getfld again. @@ -241,7 +242,7 @@ scan (FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, * The previous code here used to call m_getfld() using * pointers to the underlying output stdio buffers to * avoid the extra copy. Tests by Markus Schnalke show - * no noticable performance loss on larger mailboxes + * no noticeable performance loss on larger mailboxes * if we incur an extra copy, and messing around with * internal stdio buffers is becoming more and more * unportable as times go on. So from now on just deal @@ -326,7 +327,7 @@ finished: if (! datecomp->c_text) { if (datecomp->c_tws == NULL) datecomp->c_tws = (struct tws *) - calloc((size_t) 1, sizeof(*datecomp->c_tws)); + mh_xcalloc ((size_t) 1, sizeof(*datecomp->c_tws)); if (datecomp->c_tws == NULL) adios (NULL, "unable to allocate tws buffer"); *datecomp->c_tws = *dlocaltime ((time_t *) &st.st_mtime);