else status = obj->options->charset_conversion_fn(input_autodetect, line, length, inputCharset, "UTF-8", &converted, &converted_len, obj->options->stream_closure, nsnull, obj->options->m_unicodeToUTF8Encoder);
MimeInlineText_rotate_convert_and_parse_line(char *line, PRInt32 length,											 MimeObject *obj){  int status;  MimeInlineTextClass *textc = (MimeInlineTextClass *) obj->clazz;  char *converted = 0;  PR_ASSERT(!obj->closed_p);  if (obj->closed_p) return -1;  /* Rotate the line, if desired (this happens on the raw data, before any	 charset conversion.) */  if (obj->options && obj->options->rot13_p)	{	  status = textc->rot13_line(obj, line, length);	  if (status < 0) return status;	}  // Now convert to the canonical charset, if desired.  //  PRBool  doConvert = PR_TRUE;  // Don't convert vCard data  if ( ( (obj->content_type) && (!PL_strcasecmp(obj->content_type, TEXT_VCARD)) ) ||       (obj->options->format_out == nsMimeOutput::nsMimeMessageSaveAs) )    doConvert = PR_FALSE;      // Only convert if the user prefs is false   if ( (obj->options && obj->options->charset_conversion_fn) &&       (!obj->options->force_user_charset) &&       (doConvert)            )	{	  PRInt32         converted_len = 0;    const char      *input_charset = NULL;    PRBool          input_autodetect = PR_FALSE;    MimeInlineText  *text = (MimeInlineText *) obj;    //    // Ok, first, check if this is an Inline HTML display, and if so,     // see if we detected a charset via a META tag.    //    if (mime_typep(obj, (MimeObjectClass *) &mimeInlineTextHTMLClass))    {      MimeInlineTextHTML  *textHTML = (MimeInlineTextHTML *) obj;      input_charset = textHTML->charset;    }    if (!input_charset)    {      if (obj->options->override_charset && (*obj->options->override_charset))        input_charset = obj->options->override_charset;      else if ( (text) && (text->charset) && (*(text->charset)) )        input_charset = text->charset;      else       {        if (obj->options->default_charset)          input_charset = obj->options->default_charset;        else          input_charset = text->defaultCharset;        input_autodetect = PR_TRUE;      }    }    const char *inputCharset = !nsCRT::strcasecmp(input_charset, "us-ascii") ? "ISO-8859-1" : input_charset;    PRBool useInputCharsetConverter = obj->options->m_inputCharsetToUnicodeDecoder && !nsCRT::strcasecmp(inputCharset, obj->options->charsetForCachedInputDecoder);	  status = obj->options->charset_conversion_fn(input_autodetect, line, length,                           inputCharset,												   "UTF-8",												   &converted,												   &converted_len,                           obj->options->stream_closure, (useInputCharsetConverter) ? obj->options->m_inputCharsetToUnicodeDecoder : nsnull,                         obj->options->m_unicodeToUTF8Encoder);	  if (status < 0)		{		  PR_FREEIF(converted);		  return status;		}	  if (converted)		{		  line = converted;		  length = converted_len;		}	}  /* Now that the line has been converted, call the subclass's parse_line	 method with the decoded data. */  status = obj->clazz->parse_line(line, length, obj);  PR_FREEIF(converted);  return status;}