# This patch fixes a buggy handling of nested multiparts. # *** ./mimeparse.c.orig Tue Aug 19 16:35:53 1997 --- ./mimeparse.c Tue Aug 19 16:39:34 1997 *************** *** 218,227 **** m->level, inbuf->bodystart, inbuf->bodyend); #endif ! m->sd->offset = m->sd->bodyend; if (getline(m->sd) == 0) return(OK); if (m->sd->offset < m->sd->end) { --- 218,258 ---- m->level, inbuf->bodystart, inbuf->bodyend); #endif + /* FIX */ + if (m->sd->encoding == EMULTI && m->sd->endbound != NULL) + { + int tttt; + move_past_boundary(m, m->sd->endbound); + for (;;) + { + tttt = getline(m->sd); + #ifdef DEBUG + if (edebug) + fprintf(stderr," getline = %d\n", tttt); + #endif + if (tttt == 1) + { + inbuf->offset += tttt; + inbuf->loffset += 1; + continue; + } + if (tttt == 2 && *(m->sd->contents + m->sd->offset) == '\r') + { + inbuf->offset += tttt; + inbuf->loffset += 1; + continue; + } + break; + } + + } + else + /* END_FIX */ + m->sd->offset = m->sd->bodyend; ! if (getline(m->sd) == 0) return(OK); if (m->sd->offset < m->sd->end) {