File emil-2.1.0-beta9.patch1 of Package emil

# 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)
      {

openSUSE Build Service is sponsored by