X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1691e80890e5d8ba258c51c214a3e91880e1db2b..07dbafdaf673d7f20d7f93ab4e8e42c6c7f00a2d:/sbr/seq_list.c diff --git a/sbr/seq_list.c b/sbr/seq_list.c index afa8671c..aff9bacd 100644 --- a/sbr/seq_list.c +++ b/sbr/seq_list.c @@ -3,10 +3,13 @@ * 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 @@ -25,8 +28,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); } /* @@ -37,10 +39,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 */ @@ -71,8 +73,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; } @@ -84,7 +85,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 */ @@ -96,7 +97,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); } }