60 lines
1.2 KiB
Plaintext
60 lines
1.2 KiB
Plaintext
# 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)
|
|
{
|
|
|