From 41cebfdb964214d438cbdc590d61daead399b0a2 Mon Sep 17 00:00:00 2001 From: "akkana%netscape.com" Date: Fri, 14 May 1999 19:47:10 +0000 Subject: [PATCH] 5663: Fix copy/paste of entities. mUnicodeEncoder isn't getting initialized properly, at least on Linux. Also fixed some compiler warnings while I'm here. git-svn-id: svn://10.0.0.236/trunk@31644 18797224-902f-48f8-a5cc-f745e15eee43 --- .../htmlparser/src/nsHTMLToTXTSinkStream.cpp | 19 +++++++++++++------ .../htmlparser/src/nsHTMLToTXTSinkStream.cpp | 19 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) 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(); }