X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6c42153ad9362cc676ea66563bf400d7511b3b68..58c5e5b287f2ef7b6a855b30eb0c2be1edd5ab42:/sbr/seq_list.c diff --git a/sbr/seq_list.c b/sbr/seq_list.c index 8a440691..c4564281 100644 --- a/sbr/seq_list.c +++ b/sbr/seq_list.c @@ -1,16 +1,13 @@ - -/* - * seq_list.c -- Get all messages in a sequence and return them +/* seq_list.c -- Get all messages in a sequence and return them * -- as a space separated list of message ranges. * - * $Id$ - * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. */ #include +#include /* allocate this much buffer space at a time */ #define MAXBUFFER 1024 @@ -29,8 +26,7 @@ seq_list(struct msgs *mp, char *seqname) /* On first invocation, allocate initial buffer space */ if (!buffer) { len = MAXBUFFER; - if (!(buffer = malloc ((size_t) len))) - adios (NULL, "unable to malloc storage in seq_list"); + buffer = mh_xmalloc ((size_t) len); } /* @@ -41,10 +37,10 @@ seq_list(struct msgs *mp, char *seqname) */ if (!strcmp (current, seqname)) { if (mp->curmsg) { - sprintf(buffer, "%s", m_name(mp->curmsg)); + snprintf(buffer, len, "%s", m_name(mp->curmsg)); return (buffer); - } else - return (NULL); + } + return (NULL); } /* If the folder is empty, just return NULL */ @@ -75,8 +71,7 @@ seq_list(struct msgs *mp, char *seqname) char *newbuf; len += MAXBUFFER; - if (!(newbuf = realloc (buffer, (size_t) len))) - adios (NULL, "unable to realloc storage in seq_list"); + newbuf = mh_xrealloc (buffer, (size_t) len); bp = newbuf + (bp - buffer); buffer = newbuf; } @@ -88,7 +83,7 @@ seq_list(struct msgs *mp, char *seqname) if (bp > buffer) *bp++ = ' '; - sprintf(bp, "%s", m_name(i)); + strcpy(bp, m_name(i)); bp += strlen(bp); j = i; /* Remember beginning of message range */ @@ -100,7 +95,8 @@ seq_list(struct msgs *mp, char *seqname) ; if (i - j > 1) { - sprintf(bp, "-%s", m_name(i - 1)); + *bp++ = '-'; + strcpy(bp, m_name(i - 1)); bp += strlen(bp); } }