if (i == 0 && head[0] == 'F' && !PL_strncmp(head, "From ", 5))
if (i == 0 && head[0] == 'F' && !nsCRT::strncmp(head, "From ", 5))
MimeHeaders_write_all_headers (MimeHeaders *hdrs, MimeDisplayOptions *opt, PRBool attachment){  int status = 0;  int i;  PRBool wrote_any_p = PR_FALSE;  PR_ASSERT(hdrs);  if (!hdrs)     return -1;  /* One shouldn't be trying to read headers when one hasn't finished	 parsing them yet... but this can happen if the message ended	 prematurely, and has no body at all (as opposed to a null body,	 which is more normal.)   So, if we try to read from the headers,	 let's assume that the headers are now finished.  If they aren't	 in fact finished, then a later attempt to write to them will assert.   */  if (!hdrs->done_p)	{	  hdrs->done_p = PR_TRUE;	  status = MimeHeaders_build_heads_list(hdrs);	  if (status < 0) return 0;	}  for (i = 0; i < hdrs->heads_size; i++)  {    char *head = hdrs->heads[i];    char *end = (i == hdrs->heads_size-1                      ? hdrs->all_headers + hdrs->all_headers_fp                      : hdrs->heads[i+1]);    char *colon, *ocolon;    char *contents;    char *name = 0;    char *c2 = 0;        /* Hack for BSD Mailbox delimiter. */    if (i == 0 && head[0] == 'F' && !PL_strncmp(head, "From ", 5))    {      /* For now, we don't really want this header to be output so         we are going to just continue */      continue;      /* colon = head + 4; contents = colon + 1; */    }    else    {      /* Find the colon. */      for (colon = head; colon < end; colon++)        if (*colon == ':') break;                if (colon >= end) continue;   /* junk */                /* Back up over whitespace before the colon. */        ocolon = colon;        for (; colon > head && IS_SPACE(colon[-1]); colon--)          ;                contents = ocolon + 1;    }        /* Skip over whitespace after colon. */    while (contents <= end && IS_SPACE(*contents))      contents++;        /* Take off trailing whitespace... */    while (end > contents && IS_SPACE(end[-1]))      end--;        name = (char *)PR_MALLOC(colon - head + 1);    if (!name) return MIME_OUT_OF_MEMORY;    nsCRT::memcpy(name, head, colon - head);    name[colon - head] = 0;        c2 = (char *)PR_MALLOC(end - contents + 1);    if (!c2)    {      PR_Free(name);      return MIME_OUT_OF_MEMORY;    }    nsCRT::memcpy(c2, contents, end - contents);    c2[end - contents] = 0;        if (attachment)      status = mimeEmitterAddAttachmentField(opt, name,                                 MimeHeaders_convert_header_value(opt, &c2));    else      status = mimeEmitterAddHeaderField(opt, name,                                 MimeHeaders_convert_header_value(opt, &c2));    PR_Free(name);    PR_Free(c2);        if (status < 0) return status;    if (!wrote_any_p)       wrote_any_p = (status > 0);  }  return 1;}