nsresult nsMsgAttachmentHandler::PickCharset() { if (!m_charset.IsEmpty() || !m_type.LowerCaseEqualsLiteral(TEXT_PLAIN)) return NS_OK; nsCOMPtr<nsILocalFile> tmpFile = do_QueryInterface(mTmpFile); if (!tmpFile) return NS_OK; return MsgDetectCharsetFromFile(tmpFile, m_charset); }
nsresult nsTextAddress::GetUnicharLineStreamForFile( nsIFile *aFile, nsIInputStream *aInputStream, nsIUnicharLineInputStream **aStream) { nsAutoCString charset; nsresult rv = MsgDetectCharsetFromFile(aFile, charset); if (NS_FAILED(rv)) { charset = nsMsgI18NFileSystemCharset(); } nsCOMPtr<nsIConverterInputStream> converterStream = do_CreateInstance("@mozilla.org/intl/converter-input-stream;1", &rv); if (NS_SUCCEEDED(rv)) { rv = converterStream->Init( aInputStream, charset.get(), 8192, nsIConverterInputStream::DEFAULT_REPLACEMENT_CHARACTER); } return CallQueryInterface(converterStream, aStream); }