if (line[0] == CR) return 0; if (line[0] == LF) return 0;
MimeUntypedText_parse_line (char *line, PRInt32 length, MimeObject *obj){  MimeUntypedText *uty = (MimeUntypedText *) obj;  int status = 0;  char *name = 0, *type = 0;  PRBool begin_line_p = PR_FALSE;  PR_ASSERT(line && *line);  if (!line || !*line) return -1;  /* If we're supposed to write this object, but aren't supposed to convert	 it to HTML, simply pass it through unaltered. */  if (obj->output_p &&	  obj->options &&	  !obj->options->write_html_p &&	  obj->options->output_fn)	return MimeObject_write(obj, line, length, PR_TRUE);  /* Open a new sub-part if this line demands it.   */  if (line[0] == 'b' &&	  MimeUntypedText_uu_begin_line_p(line, length, obj->options,									  &type, &name))	{	  /* Close the old part and open a new one. */	  status = MimeUntypedText_open_subpart (obj,											 MimeUntypedTextSubpartTypeUUE,											 type, ENCODING_UUENCODE,											 name, NULL);	  PR_FREEIF(name);	  PR_FREEIF(type);	  if (status < 0) return status;	  begin_line_p = PR_TRUE;	}  else if (line[0] == '(' && line[1] == 'T' &&		   MimeUntypedText_binhex_begin_line_p(line, length, obj->options))	{	  /* Close the old part and open a new one. */	  status = MimeUntypedText_open_subpart (obj,											 MimeUntypedTextSubpartTypeBinhex,											 APPLICATION_BINHEX, NULL,											 NULL, NULL);	  if (status < 0) return status;	  begin_line_p = PR_TRUE;	}  /* Open a text/plain sub-part if there is no sub-part open.   */  if (!uty->open_subpart)	{	  PR_ASSERT(!begin_line_p);	  status = MimeUntypedText_open_subpart (obj,											 MimeUntypedTextSubpartTypeText,											 TEXT_PLAIN, NULL, NULL, NULL);	  PR_ASSERT(uty->open_subpart);	  if (!uty->open_subpart) return -1;	  if (status < 0) return status;	}  /* Hand this line to the currently-open sub-part.   */  status = uty->open_subpart->clazz->parse_buffer(line, length,												  uty->open_subpart);  if (status < 0) return status;  /* Close this sub-part if this line demands it.   */  if (begin_line_p)	;  else if (line[0] == 'e' &&		   uty->type == MimeUntypedTextSubpartTypeUUE &&		   MimeUntypedText_uu_end_line_p(line, length))	{	  status = MimeUntypedText_close_subpart (obj);	  if (status < 0) return status;	  PR_ASSERT(!uty->open_subpart);	}  else if (uty->type == MimeUntypedTextSubpartTypeBinhex &&		   MimeUntypedText_binhex_end_line_p(line, length))	{	  status = MimeUntypedText_close_subpart (obj);	  if (status < 0) return status;	  PR_ASSERT(!uty->open_subpart);	}  return 0;}