-
-/*
- * 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 <h/mh.h>
+#include <h/utils.h>
/* allocate this much buffer space at a time */
#define MAXBUFFER 1024
/* 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);
}
/*
*/
if (!strcmp (current, seqname)) {
if (mp->curmsg) {
- sprintf(buffer, "%s", m_name(mp->curmsg));
- return (buffer);
- } else
- return (NULL);
+ snprintf(buffer, len, "%s", m_name(mp->curmsg));
+ return buffer;
+ }
+ return NULL;
}
/* If the folder is empty, just return NULL */
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;
}
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 */
;
if (i - j > 1) {
- sprintf(bp, "-%s", m_name(i - 1));
+ *bp++ = '-';
+ strcpy(bp, m_name(i - 1));
bp += strlen(bp);
}
}
- return (bp > buffer? buffer : NULL);
+ return bp > buffer ? buffer : NULL;
}