diff --git a/mozilla/htmlparser/src/nsHTMLToTXTSinkStream.cpp b/mozilla/htmlparser/src/nsHTMLToTXTSinkStream.cpp
index c61f55ba78e..d6bd76a9396 100644
--- a/mozilla/htmlparser/src/nsHTMLToTXTSinkStream.cpp
+++ b/mozilla/htmlparser/src/nsHTMLToTXTSinkStream.cpp
@@ -81,7 +81,7 @@ nsresult nsHTMLToTXTSinkStream::InitEncoder(const nsString& aCharset)
kICharsetAliasIID,
(nsISupports**)&calias);
- NS_ASSERTION( nsnull != calias, "cannot find charet alias");
+ NS_ASSERTION( nsnull != calias, "cannot find charset alias");
nsAutoString charsetName = aCharset;
if( NS_SUCCEEDED(res) && (nsnull != calias))
{
@@ -471,10 +471,15 @@ void nsHTMLToTXTSinkStream::EnsureBufferSize(PRInt32 aNewSize)
void nsHTMLToTXTSinkStream::EncodeToBuffer(const nsString& aSrc)
{
-
NS_ASSERTION(mUnicodeEncoder != nsnull,"The unicode encoder needs to be initialized");
if (mUnicodeEncoder == nsnull)
+ {
+ char* str = aSrc.ToNewCString();
+ EnsureBufferSize(aSrc.Length()+1);
+ strcpy(mBuffer, str);
+ delete[] str;
return;
+ }
#define CH_NBSP 160
@@ -602,6 +607,8 @@ nsHTMLToTXTSinkStream::OpenContainer(const nsIParserNode& aNode){
{
if (mCharsetOverride.Length() == 0)
InitEncoder(value);
+ else
+ InitEncoder(mCharsetOverride);
}
}
}
@@ -622,7 +629,7 @@ nsHTMLToTXTSinkStream::OpenContainer(const nsIParserNode& aNode){
NS_IMETHODIMP
nsHTMLToTXTSinkStream::CloseContainer(const nsIParserNode& aNode){
eHTMLTags type = (eHTMLTags)aNode.GetNodeType();
- const nsString& name = aNode.GetText();
+ //const nsString& name = aNode.GetText();
if (type == eHTMLTag_body)
mDoOutput = PR_FALSE;
@@ -652,7 +659,7 @@ NS_IMETHODIMP
nsHTMLToTXTSinkStream::AddLeaf(const nsIParserNode& aNode){
eHTMLTags type = (eHTMLTags)aNode.GetNodeType();
- const nsString& text = aNode.GetText();
+ nsString text = aNode.GetText();
if (mDoOutput == PR_FALSE)
return NS_OK;
@@ -663,7 +670,7 @@ nsHTMLToTXTSinkStream::AddLeaf(const nsIParserNode& aNode){
}
else if (type == eHTMLTag_entity)
{
- const nsString& text = aNode.GetText();
+ text = aNode.GetText();
EncodeToBuffer(text);
PRUnichar entity = NS_EntityToUnicode(mBuffer);
nsString temp;
@@ -677,7 +684,7 @@ nsHTMLToTXTSinkStream::AddLeaf(const nsIParserNode& aNode){
{
if (PR_TRUE)
{
- const nsString& text = aNode.GetText();
+ text = aNode.GetText();
Write(text);
mColPos += text.Length();
}
diff --git a/mozilla/parser/htmlparser/src/nsHTMLToTXTSinkStream.cpp b/mozilla/parser/htmlparser/src/nsHTMLToTXTSinkStream.cpp
index c61f55ba78e..d6bd76a9396 100644
--- a/mozilla/parser/htmlparser/src/nsHTMLToTXTSinkStream.cpp
+++ b/mozilla/parser/htmlparser/src/nsHTMLToTXTSinkStream.cpp
@@ -81,7 +81,7 @@ nsresult nsHTMLToTXTSinkStream::InitEncoder(const nsString& aCharset)
kICharsetAliasIID,
(nsISupports**)&calias);
- NS_ASSERTION( nsnull != calias, "cannot find charet alias");
+ NS_ASSERTION( nsnull != calias, "cannot find charset alias");
nsAutoString charsetName = aCharset;
if( NS_SUCCEEDED(res) && (nsnull != calias))
{
@@ -471,10 +471,15 @@ void nsHTMLToTXTSinkStream::EnsureBufferSize(PRInt32 aNewSize)
void nsHTMLToTXTSinkStream::EncodeToBuffer(const nsString& aSrc)
{
-
NS_ASSERTION(mUnicodeEncoder != nsnull,"The unicode encoder needs to be initialized");
if (mUnicodeEncoder == nsnull)
+ {
+ char* str = aSrc.ToNewCString();
+ EnsureBufferSize(aSrc.Length()+1);
+ strcpy(mBuffer, str);
+ delete[] str;
return;
+ }
#define CH_NBSP 160
@@ -602,6 +607,8 @@ nsHTMLToTXTSinkStream::OpenContainer(const nsIParserNode& aNode){
{
if (mCharsetOverride.Length() == 0)
InitEncoder(value);
+ else
+ InitEncoder(mCharsetOverride);
}
}
}
@@ -622,7 +629,7 @@ nsHTMLToTXTSinkStream::OpenContainer(const nsIParserNode& aNode){
NS_IMETHODIMP
nsHTMLToTXTSinkStream::CloseContainer(const nsIParserNode& aNode){
eHTMLTags type = (eHTMLTags)aNode.GetNodeType();
- const nsString& name = aNode.GetText();
+ //const nsString& name = aNode.GetText();
if (type == eHTMLTag_body)
mDoOutput = PR_FALSE;
@@ -652,7 +659,7 @@ NS_IMETHODIMP
nsHTMLToTXTSinkStream::AddLeaf(const nsIParserNode& aNode){
eHTMLTags type = (eHTMLTags)aNode.GetNodeType();
- const nsString& text = aNode.GetText();
+ nsString text = aNode.GetText();
if (mDoOutput == PR_FALSE)
return NS_OK;
@@ -663,7 +670,7 @@ nsHTMLToTXTSinkStream::AddLeaf(const nsIParserNode& aNode){
}
else if (type == eHTMLTag_entity)
{
- const nsString& text = aNode.GetText();
+ text = aNode.GetText();
EncodeToBuffer(text);
PRUnichar entity = NS_EntityToUnicode(mBuffer);
nsString temp;
@@ -677,7 +684,7 @@ nsHTMLToTXTSinkStream::AddLeaf(const nsIParserNode& aNode){
{
if (PR_TRUE)
{
- const nsString& text = aNode.GetText();
+ text = aNode.GetText();
Write(text);
mColPos += text.Length();
}