nsIPref *prefs = GetPrefServiceManager(obj->options); if (prefs)
nsIPrefBranch *prefBranch = GetPrefBranch(obj->options); if (prefBranch)
MimeInlineTextPlainFlowed_parse_begin (MimeObject *obj){  int status = ((MimeObjectClass*)&MIME_SUPERCLASS)->parse_begin(obj);  if (status < 0) return status;  status =  MimeObject_write(obj, "", 0, PR_TRUE); /* force out any separators... */  if(status<0) return status;  PRBool quoting = ( obj->options    && ( obj->options->format_out == nsMimeOutput::nsMimeMessageQuoting ||         obj->options->format_out == nsMimeOutput::nsMimeMessageBodyQuoting       )       );  // The output will be inserted in the composer as quotation  PRBool plainHTML = quoting || (obj->options &&       obj->options->format_out == nsMimeOutput::nsMimeMessageSaveAs);       // Just good(tm) HTML. No reliance on CSS.  // Setup the data structure that is connected to the actual document  // Saved in a linked list in case this is called with several documents  // at the same time.  /* This memory is freed when parse_eof is called. So it better be! */  struct MimeInlineTextPlainFlowedExData *exdata =    (MimeInlineTextPlainFlowedExData *)PR_MALLOC(sizeof(struct MimeInlineTextPlainFlowedExData));  if(!exdata) return MIME_OUT_OF_MEMORY;  MimeInlineTextPlainFlowed *text = (MimeInlineTextPlainFlowed *) obj;  // Link it up.  exdata->next = MimeInlineTextPlainFlowedExDataList;  MimeInlineTextPlainFlowedExDataList = exdata;  // Initialize data  exdata->ownerobj = obj;  exdata->inflow = PR_FALSE;  exdata->quotelevel = 0;  exdata->isSig = PR_FALSE;  // Get Prefs for viewing  exdata->fixedwidthfont = PR_FALSE;  //  Quotes  text->mQuotedSizeSetting = 0;   // mail.quoted_size  text->mQuotedStyleSetting = 0;  // mail.quoted_style  text->mCitationColor = nsnull;  // mail.citation_color  nsIPref *prefs = GetPrefServiceManager(obj->options);  if (prefs)  {    prefs->GetIntPref("mail.quoted_size", &(text->mQuotedSizeSetting));    prefs->GetIntPref("mail.quoted_style", &(text->mQuotedStyleSetting));    prefs->CopyCharPref("mail.citation_color", &(text->mCitationColor));    nsresult rv = prefs->GetBoolPref("mail.fixed_width_messages",                                     &(exdata->fixedwidthfont));    NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get pref");         // Check at least the success of one  }  // Get font  // only used for viewing (!plainHTML)  nsCAutoString fontstyle;  nsCAutoString fontLang;     // langgroup of the font  // generic font-family name ( -moz-fixed for fixed font and NULL for  // variable font ) is sufficient now that bug 105199 has been fixed.  if (exdata->fixedwidthfont)    fontstyle = "font-family: -moz-fixed";  if (nsMimeOutput::nsMimeMessageBodyDisplay == obj->options->format_out ||      nsMimeOutput::nsMimeMessagePrintOutput == obj->options->format_out)  {    PRInt32 fontSize;       // default font size    PRInt32 fontSizePercentage;   // size percentage    nsresult rv = GetMailNewsFont(obj, exdata->fixedwidthfont,                                  &fontSize, &fontSizePercentage, fontLang);    if (NS_SUCCEEDED(rv))    {      if ( ! fontstyle.IsEmpty() ) {        fontstyle += "; ";      }      fontstyle += "font-size: ";      fontstyle.AppendInt(fontSize);      fontstyle += "px;";    }  }  // Opening <div>.  if (!quoting)       /* 4.x' editor can't break <div>s (e.g. to interleave comments).          We'll add the class to the <blockquote type=cite> later. */  {    nsCAutoString openingDiv("<div class=\"moz-text-flowed\"");    // We currently have to add formatting here. :-(    if (!plainHTML && !fontstyle.IsEmpty())    {      openingDiv += " style=\"";      openingDiv += fontstyle;      openingDiv += '"';    }    if (!plainHTML && !fontLang.IsEmpty())    {      openingDiv += " lang=\"";      openingDiv += fontLang;      openingDiv += '\"';    }    openingDiv += ">";    status = MimeObject_write(obj, openingDiv.get(), openingDiv.Length(), PR_FALSE);    if (status < 0) return status;  }  return 0;}