X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;ds=sidebyside;f=sbr%2Fseq_list.c;h=ce23c2240286b0e968a5a6009d2683c134e962e7;hb=HEAD;hp=87c5d04f190c1c9d58c8e47b6aa2783fa2efcda6;hpb=ced6090a330d3d83d0bce709f756aa3d7d65fea4;p=mmh diff --git a/sbr/seq_list.c b/sbr/seq_list.c index 87c5d04..ce23c22 100644 --- a/sbr/seq_list.c +++ b/sbr/seq_list.c @@ -27,16 +27,16 @@ seq_list(struct msgs *mp, char *seqname) /* On first invocation, allocate initial buffer space */ if (!buffer) { len = MAXBUFFER; - buffer = mh_xmalloc ((size_t) len); + buffer = mh_xcalloc(len, sizeof(char)); } /* - ** Special processing for "cur" sequence. We assume that the - ** "cur" sequence and mp->curmsg are in sync (see seq_add.c). + ** Special processing for the cur sequence. We assume that the + ** cur sequence and mp->curmsg are in sync (see seq_add.c). ** This is returned, even if message doesn't exist or the ** folder is empty. */ - if (!strcmp (current, seqname)) { + if (strcmp(seq_cur, seqname)==0) { if (mp->curmsg) { sprintf(buffer, "%s", m_name(mp->curmsg)); return (buffer); @@ -49,17 +49,14 @@ seq_list(struct msgs *mp, char *seqname) return NULL; /* Get the index of the sequence */ - if ((seqnum = seq_getnum (mp, seqname)) == -1) + if ((seqnum = seq_getnum(mp, seqname)) == -1) return NULL; bp = buffer; - for (i = mp->lowmsg; i <= mp->hghmsg; ++i) { - /* - ** If message doesn't exist, or isn't in - ** the sequence, then continue. - */ - if (!does_exist(mp, i) || !in_sequence(mp, seqnum, i)) + for (i = mp->lowoff; i <= mp->hghoff; ++i) { + /* If message isn't in the sequence, then continue */ + if (!in_sequence(mp, seqnum, i)) continue; /* @@ -72,7 +69,7 @@ seq_list(struct msgs *mp, char *seqname) char *newbuf; len += MAXBUFFER; - newbuf = mh_xrealloc (buffer, (size_t) len); + newbuf = mh_xrealloc(buffer, len); bp = newbuf + (bp - buffer); buffer = newbuf; } @@ -91,8 +88,7 @@ seq_list(struct msgs *mp, char *seqname) /* ** Scan to the end of this message range */ - for (++i; i <= mp->hghmsg && does_exist(mp, i) && in_sequence(mp, seqnum, i); - ++i) + for (++i; i <= mp->hghoff && in_sequence(mp, seqnum, i); ++i) ; if (i - j > 1) {