X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;ds=sidebyside;f=sbr%2Fseq_list.c;h=ce23c2240286b0e968a5a6009d2683c134e962e7;hb=1980b87246c7099e9191890036398960f6dee4d1;hp=1e2e606a6b418a92c84c62dd767f50c6fbc10f85;hpb=714b5c530ece27ea2835a313013f5b770163403c;p=mmh diff --git a/sbr/seq_list.c b/sbr/seq_list.c index 1e2e606..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); @@ -54,12 +54,9 @@ seq_list(struct msgs *mp, char *seqname) 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) {