From 71e5d724e50dbbb2928c6de7f5d3b182dfb740e8 Mon Sep 17 00:00:00 2001 From: "alecf%flett.org" Date: Tue, 17 Jun 2003 16:40:34 +0000 Subject: [PATCH] fix for bug 209220 - now that i18n APIs take ASCII charset names, update consumers to avoid excess conversions.. which usually means storing charset names as ASCII and updating a few other APIs r=jkeiser, sr=jst and some great comments from jshin@mailaps.org git-svn-id: svn://10.0.0.236/trunk@143800 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/base/public/nsIDocument.h | 4 +- .../content/base/public/nsIDocumentEncoder.h | 2 +- .../base/src/mozSanitizingSerializer.cpp | 4 +- .../base/src/mozSanitizingSerializer.h | 2 +- mozilla/content/base/src/nsCopySupport.cpp | 2 +- mozilla/content/base/src/nsDocument.cpp | 16 ++-- mozilla/content/base/src/nsDocument.h | 6 +- .../content/base/src/nsDocumentEncoder.cpp | 6 +- mozilla/content/base/src/nsDocumentViewer.cpp | 82 +++++++++---------- mozilla/content/base/src/nsFrameLoader.cpp | 4 +- mozilla/content/base/src/nsGenericElement.cpp | 4 +- .../base/src/nsImageLoadingContent.cpp | 4 +- .../content/base/src/nsPlainTextSerializer.h | 2 +- mozilla/content/base/src/nsScriptLoader.cpp | 4 +- .../html/content/src/nsFormSubmission.cpp | 5 +- .../html/document/src/nsHTMLContentSink.cpp | 16 ++-- .../html/document/src/nsHTMLDocument.cpp | 68 ++++++++------- .../html/document/src/nsHTMLDocument.h | 18 ++-- .../src/nsHTMLFragmentContentSink.cpp | 2 +- .../html/document/src/nsMediaDocument.cpp | 2 +- .../content/html/style/src/nsCSSLoader.cpp | 4 +- mozilla/content/shared/src/nsHTMLUtils.cpp | 4 +- .../xml/document/src/nsXMLContentSink.cpp | 7 +- .../xml/document/src/nsXMLContentSink.h | 2 +- .../xml/document/src/nsXMLDocument.cpp | 5 +- .../xul/document/src/nsXULContentSink.cpp | 4 +- .../xul/document/src/nsXULDocument.cpp | 4 +- mozilla/docshell/base/nsDocShell.cpp | 44 +++++----- .../docshell/base/nsIMarkupDocumentViewer.idl | 8 +- mozilla/docshell/base/nsWebShell.cpp | 4 +- mozilla/dom/src/base/nsGlobalWindow.cpp | 9 +- mozilla/dom/src/base/nsLocation.cpp | 7 +- mozilla/editor/idl/nsIEditor.idl | 2 +- mozilla/editor/libeditor/base/nsEditor.cpp | 4 +- .../libeditor/text/nsPlaintextEditor.cpp | 16 ++-- .../editor/libeditor/text/nsPlaintextEditor.h | 6 +- .../src/nsWebBrowserPersist.cpp | 10 +-- .../src/nsWebBrowserPersist.h | 2 +- .../windowwatcher/src/nsWindowWatcher.cpp | 2 +- .../xslt/txMozillaStylesheetCompiler.cpp | 4 +- .../xmlextras/base/src/nsDOMSerializer.cpp | 4 +- .../xmlextras/base/src/nsXMLHttpRequest.cpp | 16 ++-- .../xmlextras/base/src/nsXMLHttpRequest.h | 2 +- mozilla/gfx/src/gtk/nsFontMetricsGTK.cpp | 2 +- mozilla/htmlparser/public/nsIContentSink.h | 2 +- mozilla/htmlparser/public/nsIParser.h | 4 +- mozilla/htmlparser/robot/nsRobotSink.cpp | 2 +- mozilla/htmlparser/src/nsDTDUtils.cpp | 5 +- mozilla/htmlparser/src/nsLoggingSink.h | 2 +- mozilla/htmlparser/src/nsParser.cpp | 50 +++++------ mozilla/htmlparser/src/nsParser.h | 10 +-- mozilla/htmlparser/src/nsScanner.cpp | 14 ++-- mozilla/htmlparser/src/nsScanner.h | 8 +- .../public/nsICharsetDetectionAdaptor.h | 2 +- mozilla/intl/chardet/public/nsIDocCharset.idl | 2 +- .../intl/chardet/src/nsDetectionAdaptor.cpp | 8 +- mozilla/intl/chardet/src/nsDetectionAdaptor.h | 6 +- mozilla/layout/base/nsDocumentViewer.cpp | 82 +++++++++---------- mozilla/layout/base/nsPresContext.cpp | 12 +-- mozilla/layout/base/nsPresContext.h | 2 +- mozilla/layout/base/public/nsIPresContext.h | 2 +- mozilla/layout/base/public/nsPresContext.h | 2 +- mozilla/layout/base/src/nsCopySupport.cpp | 2 +- mozilla/layout/base/src/nsPresContext.cpp | 12 +-- mozilla/layout/base/src/nsPresContext.h | 6 +- mozilla/layout/forms/nsIsIndexFrame.cpp | 10 +-- mozilla/layout/generic/nsImageFrame.cpp | 10 +-- mozilla/layout/generic/nsImageFrame.h | 2 +- mozilla/layout/generic/nsObjectFrame.cpp | 18 ++-- mozilla/layout/html/base/src/nsImageFrame.cpp | 10 +-- mozilla/layout/html/base/src/nsImageFrame.h | 2 +- .../layout/html/base/src/nsObjectFrame.cpp | 18 ++-- .../layout/html/forms/src/nsIsIndexFrame.cpp | 10 +-- mozilla/layout/style/nsCSSLoader.cpp | 4 +- mozilla/mailnews/base/public/nsIMessenger.idl | 2 +- mozilla/mailnews/base/src/nsMessenger.cpp | 8 +- mozilla/mailnews/base/src/nsMessenger.h | 2 +- .../mailnews/base/src/nsMsgPrintEngine.cpp | 3 +- mozilla/mailnews/compose/src/nsMsgCompose.cpp | 10 +-- .../parser/htmlparser/public/nsIContentSink.h | 2 +- mozilla/parser/htmlparser/public/nsIParser.h | 4 +- .../parser/htmlparser/robot/nsRobotSink.cpp | 2 +- mozilla/parser/htmlparser/src/nsDTDUtils.cpp | 5 +- mozilla/parser/htmlparser/src/nsLoggingSink.h | 2 +- mozilla/parser/htmlparser/src/nsParser.cpp | 50 +++++------ mozilla/parser/htmlparser/src/nsParser.h | 10 +-- mozilla/parser/htmlparser/src/nsScanner.cpp | 14 ++-- mozilla/parser/htmlparser/src/nsScanner.h | 8 +- mozilla/rdf/base/src/nsRDFContentSink.cpp | 2 +- mozilla/rdf/base/src/nsRDFXMLParser.cpp | 4 +- 90 files changed, 420 insertions(+), 452 deletions(-) diff --git a/mozilla/content/base/public/nsIDocument.h b/mozilla/content/base/public/nsIDocument.h index c1241dc2117..29b3d4f0a99 100644 --- a/mozilla/content/base/public/nsIDocument.h +++ b/mozilla/content/base/public/nsIDocument.h @@ -157,8 +157,8 @@ public: * will trigger a startDocumentLoad if necessary to answer the * question. */ - NS_IMETHOD GetDocumentCharacterSet(nsAString& oCharSetID) = 0; - NS_IMETHOD SetDocumentCharacterSet(const nsAString& aCharSetID) = 0; + NS_IMETHOD GetDocumentCharacterSet(nsACString& oCharSetID) = 0; + NS_IMETHOD SetDocumentCharacterSet(const nsACString& aCharSetID) = 0; NS_IMETHOD GetDocumentCharacterSetSource(PRInt32* aCharsetSource) = 0; NS_IMETHOD SetDocumentCharacterSetSource(PRInt32 aCharsetSource) = 0; diff --git a/mozilla/content/base/public/nsIDocumentEncoder.h b/mozilla/content/base/public/nsIDocumentEncoder.h index 5d884cc90c2..b46539eccfb 100644 --- a/mozilla/content/base/public/nsIDocumentEncoder.h +++ b/mozilla/content/base/public/nsIDocumentEncoder.h @@ -213,7 +213,7 @@ public: * * Possible result codes: NS_ERROR_NO_CHARSET_CONVERTER */ - NS_IMETHOD SetCharset(const nsAString& aCharset) = 0; + NS_IMETHOD SetCharset(const nsACString& aCharset) = 0; /** * Set a wrap column. This may have no effect in some types of encoders. diff --git a/mozilla/content/base/src/mozSanitizingSerializer.cpp b/mozilla/content/base/src/mozSanitizingSerializer.cpp index c1663cf1a39..c35ca9110cc 100644 --- a/mozilla/content/base/src/mozSanitizingSerializer.cpp +++ b/mozilla/content/base/src/mozSanitizingSerializer.cpp @@ -387,13 +387,13 @@ mozSanitizingHTMLSerializer::AddDocTypeDecl(const nsIParserNode& aNode) } NS_IMETHODIMP -mozSanitizingHTMLSerializer::SetDocumentCharset(nsAString& aCharset) +mozSanitizingHTMLSerializer::SetDocumentCharset(nsACString& aCharset) { // No idea, if this works - it isn't invoked by |TestOutput|. Write(NS_LITERAL_STRING("\n\n")); + + NS_ConvertASCIItoUCS2(aCharset) + NS_LITERAL_STRING("\">\n")); return NS_OK; } diff --git a/mozilla/content/base/src/mozSanitizingSerializer.h b/mozilla/content/base/src/mozSanitizingSerializer.h index 36707dab367..d68c68b67e2 100644 --- a/mozilla/content/base/src/mozSanitizingSerializer.h +++ b/mozilla/content/base/src/mozSanitizingSerializer.h @@ -107,7 +107,7 @@ public: { return NS_OK; } NS_IMETHOD AddDocTypeDecl(const nsIParserNode& aNode); NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset); + NS_IMETHOD SetDocumentCharset(nsACString& aCharset); NS_IMETHOD NotifyTagObservers(nsIParserNode* aNode) { return NS_OK; } // nsIHTMLContentSink diff --git a/mozilla/content/base/src/nsCopySupport.cpp b/mozilla/content/base/src/nsCopySupport.cpp index 428eaf7774f..389f607510f 100644 --- a/mozilla/content/base/src/nsCopySupport.cpp +++ b/mozilla/content/base/src/nsCopySupport.cpp @@ -178,7 +178,7 @@ nsresult nsCopySupport::HTMLCopy(nsISelection *aSel, nsIDocument *aDoc, PRInt16 } //Mohamed else { - nsAutoString bidiCharset; + nsCAutoString bidiCharset; context->GetBidiCharset(bidiCharset); if (bidiCharset.EqualsIgnoreCase("UTF-8") || (!isVisual)) { if ( (GET_BIDI_OPTION_CLIPBOARDTEXTMODE(bidiOptions) == IBMBIDI_CLIPBOARDTEXTMODE_VISUAL) || (!isBidiSystem) ) { diff --git a/mozilla/content/base/src/nsDocument.cpp b/mozilla/content/base/src/nsDocument.cpp index cc6079c9e89..a3f49784477 100644 --- a/mozilla/content/base/src/nsDocument.cpp +++ b/mozilla/content/base/src/nsDocument.cpp @@ -482,7 +482,7 @@ NS_IMPL_RELEASE_USING_AGGREGATOR(nsXPathDocumentTearoff, mDocument) // bother initializing members to 0. nsDocument::nsDocument() - : mCharacterSet(NS_LITERAL_STRING("ISO-8859-1")), + : mCharacterSet(NS_LITERAL_CSTRING("ISO-8859-1")), mNextContentID(NS_CONTENT_ID_COUNTER_BASE) { @@ -954,7 +954,7 @@ nsDocument::SetBaseTarget(const nsAString &aBaseTarget) } NS_IMETHODIMP -nsDocument::GetDocumentCharacterSet(nsAString& aCharSetID) +nsDocument::GetDocumentCharacterSet(nsACString& aCharSetID) { aCharSetID = mCharacterSet; @@ -962,7 +962,7 @@ nsDocument::GetDocumentCharacterSet(nsAString& aCharSetID) } NS_IMETHODIMP -nsDocument::SetDocumentCharacterSet(const nsAString& aCharSetID) +nsDocument::SetDocumentCharacterSet(const nsACString& aCharSetID) { if (!mCharacterSet.Equals(aCharSetID)) { mCharacterSet = aCharSetID; @@ -974,7 +974,7 @@ nsDocument::SetDocumentCharacterSet(const nsAString& aCharSetID) NS_STATIC_CAST(nsIObserver *, mCharSetObservers.ElementAt(i)); observer->Observe(NS_STATIC_CAST(nsIDocument *, this), "charset", - PromiseFlatString(aCharSetID).get()); + NS_ConvertASCIItoUCS2(aCharSetID).get()); } } @@ -2569,7 +2569,11 @@ nsDocument::GetStyleSheets(nsIDOMStyleSheetList** aStyleSheets) NS_IMETHODIMP nsDocument::GetCharacterSet(nsAString& aCharacterSet) { - return GetDocumentCharacterSet(aCharacterSet); + nsCAutoString charset; + nsresult rv = GetDocumentCharacterSet(charset); + if (NS_SUCCEEDED(rv)) + CopyASCIItoUCS2(charset, aCharacterSet); + return rv; } NS_IMETHODIMP @@ -3972,7 +3976,7 @@ nsDocument::GetXMLDeclaration(nsAString& aVersion, nsAString& aEncoding, if (mXMLDeclarationBits & XML_DECLARATION_BITS_ENCODING_EXISTS) { // This is what we have stored, not necessarily what was written // in the original - GetDocumentCharacterSet(aEncoding); + GetCharacterSet(aEncoding); } if (mXMLDeclarationBits & XML_DECLARATION_BITS_STANDALONE_EXISTS) { diff --git a/mozilla/content/base/src/nsDocument.h b/mozilla/content/base/src/nsDocument.h index 183f750eb77..0d151bac1fe 100644 --- a/mozilla/content/base/src/nsDocument.h +++ b/mozilla/content/base/src/nsDocument.h @@ -314,8 +314,8 @@ public: * Return a standard name for the document's character set. This will * trigger a startDocumentLoad if necessary to answer the question. */ - NS_IMETHOD GetDocumentCharacterSet(nsAString& oCharsetID); - NS_IMETHOD SetDocumentCharacterSet(const nsAString& aCharSetID); + NS_IMETHOD GetDocumentCharacterSet(nsACString& oCharsetID); + NS_IMETHOD SetDocumentCharacterSet(const nsACString& aCharSetID); NS_IMETHOD GetDocumentCharacterSetSource(PRInt32* aCharsetSource); NS_IMETHOD SetDocumentCharacterSetSource(PRInt32 aCharsetSource); @@ -606,7 +606,7 @@ protected: nsWeakPtr mDocumentContainer; - nsString mCharacterSet; + nsCString mCharacterSet; PRInt32 mCharacterSetSource; nsVoidArray mCharSetObservers; diff --git a/mozilla/content/base/src/nsDocumentEncoder.cpp b/mozilla/content/base/src/nsDocumentEncoder.cpp index 286e0b41479..ad8e4c8905b 100644 --- a/mozilla/content/base/src/nsDocumentEncoder.cpp +++ b/mozilla/content/base/src/nsDocumentEncoder.cpp @@ -109,7 +109,7 @@ public: NS_IMETHOD SetRange(nsIDOMRange* aRange); NS_IMETHOD SetNode(nsIDOMNode* aNode); NS_IMETHOD SetWrapColumn(PRUint32 aWC); - NS_IMETHOD SetCharset(const nsAString& aCharset); + NS_IMETHOD SetCharset(const nsACString& aCharset); NS_IMETHOD GetMimeType(nsAString& aMimeType); NS_IMETHOD EncodeToStream(nsIOutputStream* aStream); NS_IMETHOD EncodeToString(nsAString& aOutputString); @@ -273,9 +273,9 @@ nsDocumentEncoder::SetNode(nsIDOMNode* aNode) } NS_IMETHODIMP -nsDocumentEncoder::SetCharset(const nsAString& aCharset) +nsDocumentEncoder::SetCharset(const nsACString& aCharset) { - CopyUCS2toASCII(aCharset, mCharset); + mCharset = aCharset; return NS_OK; } diff --git a/mozilla/content/base/src/nsDocumentViewer.cpp b/mozilla/content/base/src/nsDocumentViewer.cpp index 4c96da25dda..069457d7fbd 100644 --- a/mozilla/content/base/src/nsDocumentViewer.cpp +++ b/mozilla/content/base/src/nsDocumentViewer.cpp @@ -447,18 +447,19 @@ protected: #endif // NS_DEBUG #endif // NS_PRINTING + /* character set member data */ + PRInt32 mHintCharsetSource; + nsCString mHintCharset; + nsCString mDefaultCharacterSet; + nsCString mForceCharacterSet; + nsCString mPrevDocCharacterSet; + // document management data // these items are specific to markup documents (html and xml) // may consider splitting these out into a subclass PRPackedBool mAllowPlugins; PRPackedBool mIsSticky; - /* character set member data */ - nsString mDefaultCharacterSet; - nsString mHintCharset; - PRInt32 mHintCharsetSource; - nsString mForceCharacterSet; - nsString mPrevDocCharacterSet; }; //------------------------------------------------------------------ @@ -2322,9 +2323,8 @@ NS_IMETHODIMP DocumentViewerImpl::GetTextZoom(float* aTextZoom) // XXX: SEMANTIC CHANGE! // returns a copy of the string. Caller is responsible for freeing result // using Recycle(aDefaultCharacterSet) -NS_IMETHODIMP DocumentViewerImpl::GetDefaultCharacterSet(PRUnichar** aDefaultCharacterSet) +NS_IMETHODIMP DocumentViewerImpl::GetDefaultCharacterSet(nsACString& aDefaultCharacterSet) { - NS_ENSURE_ARG_POINTER(aDefaultCharacterSet); NS_ENSURE_STATE(mContainer); if (mDefaultCharacterSet.IsEmpty()) @@ -2348,69 +2348,64 @@ NS_IMETHODIMP DocumentViewerImpl::GetDefaultCharacterSet(PRUnichar** aDefaultCha } if (!defCharset.IsEmpty()) - mDefaultCharacterSet.Assign(defCharset.get()); + CopyUCS2toASCII(defCharset, mDefaultCharacterSet); else - mDefaultCharacterSet.Assign(NS_LITERAL_STRING("ISO-8859-1")); + mDefaultCharacterSet.Assign(NS_LITERAL_CSTRING("ISO-8859-1")); } - *aDefaultCharacterSet = ToNewUnicode(mDefaultCharacterSet); + aDefaultCharacterSet = mDefaultCharacterSet; return NS_OK; } static void SetChildDefaultCharacterSet(nsIMarkupDocumentViewer* aChild, void* aClosure) { - aChild->SetDefaultCharacterSet((PRUnichar*) aClosure); + const nsACString* charset = NS_STATIC_CAST(nsACString*, aClosure); + aChild->SetDefaultCharacterSet(*charset); } -NS_IMETHODIMP DocumentViewerImpl::SetDefaultCharacterSet(const PRUnichar* aDefaultCharacterSet) +NS_IMETHODIMP +DocumentViewerImpl::SetDefaultCharacterSet(const nsACString& aDefaultCharacterSet) { mDefaultCharacterSet = aDefaultCharacterSet; // this does a copy of aDefaultCharacterSet // now set the default char set on all children of mContainer return CallChildren(SetChildDefaultCharacterSet, - (void*) aDefaultCharacterSet); + (void*) &aDefaultCharacterSet); } // XXX: SEMANTIC CHANGE! // returns a copy of the string. Caller is responsible for freeing result // using Recycle(aForceCharacterSet) -NS_IMETHODIMP DocumentViewerImpl::GetForceCharacterSet(PRUnichar** aForceCharacterSet) +NS_IMETHODIMP DocumentViewerImpl::GetForceCharacterSet(nsACString& aForceCharacterSet) { - NS_ENSURE_ARG_POINTER(aForceCharacterSet); - - nsAutoString emptyStr; - if (mForceCharacterSet.Equals(emptyStr)) { - *aForceCharacterSet = nsnull; - } - else { - *aForceCharacterSet = ToNewUnicode(mForceCharacterSet); - } + aForceCharacterSet = mForceCharacterSet; return NS_OK; } static void SetChildForceCharacterSet(nsIMarkupDocumentViewer* aChild, void* aClosure) { - aChild->SetForceCharacterSet((PRUnichar*) aClosure); + const nsACString* charset = NS_STATIC_CAST(nsACString*, aClosure); + aChild->SetForceCharacterSet(*charset); } -NS_IMETHODIMP DocumentViewerImpl::SetForceCharacterSet(const PRUnichar* aForceCharacterSet) +NS_IMETHODIMP +DocumentViewerImpl::SetForceCharacterSet(const nsACString& aForceCharacterSet) { mForceCharacterSet = aForceCharacterSet; // now set the force char set on all children of mContainer - return CallChildren(SetChildForceCharacterSet, (void*) aForceCharacterSet); + return CallChildren(SetChildForceCharacterSet, (void*) &aForceCharacterSet); } // XXX: SEMANTIC CHANGE! // returns a copy of the string. Caller is responsible for freeing result // using Recycle(aHintCharacterSet) -NS_IMETHODIMP DocumentViewerImpl::GetHintCharacterSet(PRUnichar * *aHintCharacterSet) +NS_IMETHODIMP DocumentViewerImpl::GetHintCharacterSet(nsACString& aHintCharacterSet) { - NS_ENSURE_ARG_POINTER(aHintCharacterSet); if(kCharsetUninitialized == mHintCharsetSource) { - *aHintCharacterSet = nsnull; + aHintCharacterSet.Truncate(); } else { - *aHintCharacterSet = ToNewUnicode(mHintCharset); + aHintCharacterSet = mHintCharset; // this can't possibly be right. we can't set a value just because somebody got a related value! //mHintCharsetSource = kCharsetUninitialized; } @@ -2426,11 +2421,9 @@ NS_IMETHODIMP DocumentViewerImpl::GetHintCharacterSetSource(PRInt32 *aHintCharac } -NS_IMETHODIMP DocumentViewerImpl::GetPrevDocCharacterSet(PRUnichar * *aPrevDocCharacterSet) +NS_IMETHODIMP DocumentViewerImpl::GetPrevDocCharacterSet(nsACString& aPrevDocCharacterSet) { - NS_ENSURE_ARG_POINTER(aPrevDocCharacterSet); - - *aPrevDocCharacterSet = ToNewUnicode(mPrevDocCharacterSet); + aPrevDocCharacterSet = mPrevDocCharacterSet; return NS_OK; } @@ -2438,15 +2431,17 @@ NS_IMETHODIMP DocumentViewerImpl::GetPrevDocCharacterSet(PRUnichar * *aPrevDocCh static void SetChildPrevDocCharacterSet(nsIMarkupDocumentViewer* aChild, void* aClosure) { - aChild->SetPrevDocCharacterSet((PRUnichar*) aClosure); + const nsACString* charset = NS_STATIC_CAST(nsACString*, aClosure); + aChild->SetPrevDocCharacterSet(*charset); } -NS_IMETHODIMP DocumentViewerImpl::SetPrevDocCharacterSet(const PRUnichar* aPrevDocCharacterSet) +NS_IMETHODIMP +DocumentViewerImpl::SetPrevDocCharacterSet(const nsACString& aPrevDocCharacterSet) { mPrevDocCharacterSet = aPrevDocCharacterSet; return CallChildren(SetChildPrevDocCharacterSet, - (void*) aPrevDocCharacterSet); + (void*) &aPrevDocCharacterSet); } @@ -2456,7 +2451,8 @@ SetChildHintCharacterSetSource(nsIMarkupDocumentViewer* aChild, void* aClosure) aChild->SetHintCharacterSetSource(NS_PTR_TO_INT32(aClosure)); } -NS_IMETHODIMP DocumentViewerImpl::SetHintCharacterSetSource(PRInt32 aHintCharacterSetSource) +NS_IMETHODIMP +DocumentViewerImpl::SetHintCharacterSetSource(PRInt32 aHintCharacterSetSource) { mHintCharsetSource = aHintCharacterSetSource; // now set the hint char set source on all children of mContainer @@ -2467,14 +2463,16 @@ NS_IMETHODIMP DocumentViewerImpl::SetHintCharacterSetSource(PRInt32 aHintCharact static void SetChildHintCharacterSet(nsIMarkupDocumentViewer* aChild, void* aClosure) { - aChild->SetHintCharacterSet((PRUnichar*) aClosure); + const nsACString* charset = NS_STATIC_CAST(nsACString*, aClosure); + aChild->SetHintCharacterSet(*charset); } -NS_IMETHODIMP DocumentViewerImpl::SetHintCharacterSet(const PRUnichar* aHintCharacterSet) +NS_IMETHODIMP +DocumentViewerImpl::SetHintCharacterSet(const nsACString& aHintCharacterSet) { mHintCharset = aHintCharacterSet; // now set the hint char set on all children of mContainer - return CallChildren(SetChildHintCharacterSet, (void*) aHintCharacterSet); + return CallChildren(SetChildHintCharacterSet, (void*) &aHintCharacterSet); } static void diff --git a/mozilla/content/base/src/nsFrameLoader.cpp b/mozilla/content/base/src/nsFrameLoader.cpp index 20583eb6cbd..f29a5437ee3 100644 --- a/mozilla/content/base/src/nsFrameLoader.cpp +++ b/mozilla/content/base/src/nsFrameLoader.cpp @@ -164,13 +164,13 @@ nsFrameLoader::LoadFrame() nsCOMPtr base_uri; doc->GetBaseURL(getter_AddRefs(base_uri)); - nsAutoString doc_charset; + nsCAutoString doc_charset; doc->GetDocumentCharacterSet(doc_charset); nsCOMPtr uri; rv = NS_NewURI(getter_AddRefs(uri), src, doc_charset.IsEmpty() ? nsnull : - NS_ConvertUCS2toUTF8(doc_charset).get(), base_uri); + doc_charset.get(), base_uri); NS_ENSURE_SUCCESS(rv, rv); // Check for security diff --git a/mozilla/content/base/src/nsGenericElement.cpp b/mozilla/content/base/src/nsGenericElement.cpp index deee3a26f69..7cd2aad0d94 100644 --- a/mozilla/content/base/src/nsGenericElement.cpp +++ b/mozilla/content/base/src/nsGenericElement.cpp @@ -2972,11 +2972,11 @@ nsGenericElement::TriggerLink(nsIPresContext* aPresContext, // Resolve url to an absolute url nsCOMPtr targetURI; - nsAutoString docCharset; + nsCAutoString docCharset; if (mDocument && NS_SUCCEEDED(mDocument->GetDocumentCharacterSet(docCharset))) { rv = NS_NewURI(getter_AddRefs(targetURI), aURLSpec, - NS_LossyConvertUCS2toASCII(docCharset).get(), aBaseURL); + docCharset.get(), aBaseURL); } else { rv = NS_NewURI(getter_AddRefs(targetURI), aURLSpec, nsnull, aBaseURL); } diff --git a/mozilla/content/base/src/nsImageLoadingContent.cpp b/mozilla/content/base/src/nsImageLoadingContent.cpp index d6f49b99943..487f75a3a4e 100644 --- a/mozilla/content/base/src/nsImageLoadingContent.cpp +++ b/mozilla/content/base/src/nsImageLoadingContent.cpp @@ -598,13 +598,13 @@ nsImageLoadingContent::StringToURI(const nsACString& aSpec, NS_ENSURE_SUCCESS(rv, rv); // (2) Get the charset - nsAutoString charset; + nsCAutoString charset; aDocument->GetDocumentCharacterSet(charset); // (3) Construct the silly thing return NS_NewURI(aURI, aSpec, - charset.IsEmpty() ? nsnull : NS_ConvertUCS2toUTF8(charset).get(), + charset.IsEmpty() ? nsnull : charset.get(), baseURL, sIOService); } diff --git a/mozilla/content/base/src/nsPlainTextSerializer.h b/mozilla/content/base/src/nsPlainTextSerializer.h index 668afb1eb00..6398cba20ec 100644 --- a/mozilla/content/base/src/nsPlainTextSerializer.h +++ b/mozilla/content/base/src/nsPlainTextSerializer.h @@ -103,7 +103,7 @@ public: NS_IMETHOD AddProcessingInstruction(const nsIParserNode& aNode) { return NS_OK; } NS_IMETHOD AddDocTypeDecl(const nsIParserNode& aNode) { return NS_OK; } NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset) { return NS_OK; } + NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; } NS_IMETHOD NotifyTagObservers(nsIParserNode* aNode) { return NS_OK; } // nsIHTMLContentSink diff --git a/mozilla/content/base/src/nsScriptLoader.cpp b/mozilla/content/base/src/nsScriptLoader.cpp index 1ad22044ad9..31dd50f4fb9 100644 --- a/mozilla/content/base/src/nsScriptLoader.cpp +++ b/mozilla/content/base/src/nsScriptLoader.cpp @@ -809,9 +809,7 @@ nsScriptLoader::OnStreamComplete(nsIStreamLoader* aLoader, if (characterSet.IsEmpty()) { // charset from document default - nsAutoString uCharset; - rv = mDocument->GetDocumentCharacterSet(uCharset); - CopyUCS2toASCII(uCharset, characterSet); + rv = mDocument->GetDocumentCharacterSet(characterSet); } NS_ASSERTION(NS_SUCCEEDED(rv), "Could not get document charset!"); diff --git a/mozilla/content/html/content/src/nsFormSubmission.cpp b/mozilla/content/html/content/src/nsFormSubmission.cpp index e69040db65a..96fc1f96efe 100644 --- a/mozilla/content/html/content/src/nsFormSubmission.cpp +++ b/mozilla/content/html/content/src/nsFormSubmission.cpp @@ -1276,10 +1276,7 @@ nsFormSubmission::GetSubmitCharset(nsIHTMLContent* aForm, nsCOMPtr doc; aForm->GetDocument(getter_AddRefs(doc)); if (doc) { - nsAutoString docCharset; - rv = doc->GetDocumentCharacterSet(docCharset); - if (NS_SUCCEEDED(rv)) - CopyUCS2toASCII(docCharset, oCharset); + rv = doc->GetDocumentCharacterSet(oCharset); } if (aCtrlsModAtSubmit==IBMBIDI_CONTROLSTEXTMODE_VISUAL diff --git a/mozilla/content/html/document/src/nsHTMLContentSink.cpp b/mozilla/content/html/document/src/nsHTMLContentSink.cpp index 92b3e2788f5..ef3f235f818 100644 --- a/mozilla/content/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/content/html/document/src/nsHTMLContentSink.cpp @@ -246,7 +246,7 @@ public: NS_IMETHOD WillResume(void); NS_IMETHOD SetParser(nsIParser* aParser); NS_IMETHOD FlushPendingNotifications(); - NS_IMETHOD SetDocumentCharset(nsAString& aCharset); + NS_IMETHOD SetDocumentCharset(nsACString& aCharset); // nsIHTMLContentSink NS_IMETHOD OpenContainer(const nsIParserNode& aNode); @@ -4361,12 +4361,11 @@ HTMLContentSink::ScrollToRef(PRBool aReallyScroll) // document's charset. if (NS_FAILED(rv)) { - nsAutoString docCharset; + nsCAutoString docCharset; rv = mDocument->GetDocumentCharacterSet(docCharset); if (NS_SUCCEEDED(rv)) { - NS_LossyConvertUCS2toASCII charset(docCharset); - rv = CharsetConvRef(charset, unescapedRef, ref); + rv = CharsetConvRef(docCharset, unescapedRef, ref); if (NS_SUCCEEDED(rv) && !ref.IsEmpty()) rv = shell->GoToAnchor(ref, aReallyScroll); @@ -4928,12 +4927,11 @@ HTMLContentSink::PrefetchHref(const nsAString &aHref, PRBool aExplicit) do_GetService(NS_PREFETCHSERVICE_CONTRACTID)); if (prefetchService) { // construct URI using document charset - nsAutoString charset; + nsCAutoString charset; mDocument->GetDocumentCharacterSet(charset); nsCOMPtr uri; NS_NewURI(getter_AddRefs(uri), aHref, - charset.IsEmpty() ? nsnull - : NS_LossyConvertUCS2toASCII(charset).get(), + charset.IsEmpty() ? nsnull : charset.get(), mDocumentBaseURL); if (uri) prefetchService->PrefetchURI(uri, mDocumentURI, aExplicit); @@ -5815,7 +5813,7 @@ HTMLContentSink::FlushPendingNotifications() } NS_IMETHODIMP -HTMLContentSink::SetDocumentCharset(nsAString& aCharset) +HTMLContentSink::SetDocumentCharset(nsACString& aCharset) { if (mDocShell) { // the following logic to get muCV is copied from @@ -5851,7 +5849,7 @@ HTMLContentSink::SetDocumentCharset(nsAString& aCharset) } if (muCV) { - muCV->SetPrevDocCharacterSet(PromiseFlatString(aCharset).get()); + muCV->SetPrevDocCharacterSet(aCharset); } } diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index 882826cb88d..4dc005b3ec5 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -475,15 +475,15 @@ nsHTMLDocument::CreateShell(nsIPresContext* aContext, PRBool nsHTMLDocument::TryHintCharset(nsIMarkupDocumentViewer* aMarkupDV, - PRInt32& aCharsetSource, nsAString& aCharset) + PRInt32& aCharsetSource, nsACString& aCharset) { if (aMarkupDV) { PRInt32 requestCharsetSource; nsresult rv = aMarkupDV->GetHintCharacterSetSource(&requestCharsetSource); if(NS_SUCCEEDED(rv) && kCharsetUninitialized != requestCharsetSource) { - PRUnichar* requestCharset; - rv = aMarkupDV->GetHintCharacterSet(&requestCharset); + nsCAutoString requestCharset; + rv = aMarkupDV->GetHintCharacterSet(requestCharset); aMarkupDV->SetHintCharacterSetSource((PRInt32)(kCharsetUninitialized)); if(requestCharsetSource <= aCharsetSource) @@ -493,8 +493,6 @@ nsHTMLDocument::TryHintCharset(nsIMarkupDocumentViewer* aMarkupDV, aCharsetSource = requestCharsetSource; aCharset = requestCharset; - Recycle(requestCharset); - return PR_TRUE; } } @@ -507,28 +505,27 @@ PRBool nsHTMLDocument::TryUserForcedCharset(nsIMarkupDocumentViewer* aMarkupDV, nsIDocumentCharsetInfo* aDocInfo, PRInt32& aCharsetSource, - nsAString& aCharset) + nsACString& aCharset) { nsresult rv = NS_OK; if(kCharsetFromUserForced <= aCharsetSource) return PR_TRUE; - PRUnichar* forceCharsetFromDocShell = nsnull; + nsCAutoString forceCharsetFromDocShell; if (aMarkupDV) { - rv = aMarkupDV->GetForceCharacterSet(&forceCharsetFromDocShell); + rv = aMarkupDV->GetForceCharacterSet(forceCharsetFromDocShell); } - if(NS_SUCCEEDED(rv) && forceCharsetFromDocShell) { + if(NS_SUCCEEDED(rv) && !forceCharsetFromDocShell.IsEmpty()) { aCharset = forceCharsetFromDocShell; - Recycle(forceCharsetFromDocShell); //TODO: we should define appropriate constant for force charset aCharsetSource = kCharsetFromUserForced; } else if (aDocInfo) { nsCOMPtr csAtom; aDocInfo->GetForcedCharset(getter_AddRefs(csAtom)); if (csAtom) { - csAtom->ToString(aCharset); + csAtom->ToUTF8String(aCharset); aCharsetSource = kCharsetFromUserForced; aDocInfo->SetForcedCharset(nsnull); return PR_TRUE; @@ -541,7 +538,7 @@ nsHTMLDocument::TryUserForcedCharset(nsIMarkupDocumentViewer* aMarkupDV, PRBool nsHTMLDocument::TryCacheCharset(nsICacheEntryDescriptor* aCacheDescriptor, PRInt32& aCharsetSource, - nsAString& aCharset) + nsACString& aCharset) { nsresult rv; @@ -554,7 +551,7 @@ nsHTMLDocument::TryCacheCharset(nsICacheEntryDescriptor* aCacheDescriptor, getter_Copies(cachedCharset)); if (NS_SUCCEEDED(rv) && !cachedCharset.IsEmpty()) { - aCharset.Assign(NS_ConvertASCIItoUCS2(cachedCharset)); + aCharset = cachedCharset; aCharsetSource = kCharsetFromCache; return PR_TRUE; @@ -567,7 +564,7 @@ PRBool nsHTMLDocument::TryBookmarkCharset(nsIDocShell* aDocShell, nsIChannel* aChannel, PRInt32& aCharsetSource, - nsAString& aCharset) + nsACString& aCharset) { if (kCharsetFromBookmarks <= aCharsetSource) { return PR_TRUE; @@ -599,7 +596,7 @@ nsHTMLDocument::TryBookmarkCharset(nsIDocShell* aDocShell, nsnull, charset); if (NS_SUCCEEDED(rv) && !charset.IsEmpty()) { - aCharset = NS_ConvertASCIItoUCS2(charset); + aCharset = charset; return PR_TRUE; } } @@ -610,7 +607,7 @@ nsHTMLDocument::TryBookmarkCharset(nsIDocShell* aDocShell, PRBool nsHTMLDocument::TryParentCharset(nsIDocumentCharsetInfo* aDocInfo, PRInt32& aCharsetSource, - nsAString& aCharset) + nsACString& aCharset) { if (aDocInfo) { PRInt32 source; @@ -632,7 +629,7 @@ nsHTMLDocument::TryParentCharset(nsIDocumentCharsetInfo* aDocInfo, aDocInfo->GetParentCharset(getter_AddRefs(csAtom)); if (csAtom) { - csAtom->ToString(aCharset); + csAtom->ToUTF8String(aCharset); aCharsetSource = source; return PR_TRUE; } @@ -642,19 +639,19 @@ nsHTMLDocument::TryParentCharset(nsIDocumentCharsetInfo* aDocInfo, PRBool nsHTMLDocument::UseWeakDocTypeDefault(PRInt32& aCharsetSource, - nsAString& aCharset) + nsACString& aCharset) { if (kCharsetFromWeakDocTypeDefault <= aCharsetSource) return PR_TRUE; // fallback value in case docshell return error - aCharset.Assign(NS_LITERAL_STRING("ISO-8859-1")); + aCharset = NS_LITERAL_CSTRING("ISO-8859-1"); nsCOMPtr prefs(do_GetService(NS_PREF_CONTRACTID)); if (prefs) { nsXPIDLString defCharset; nsresult rv = prefs->GetLocalizedUnicharPref("intl.charset.default", getter_Copies(defCharset)); if (NS_SUCCEEDED(rv) && !defCharset.IsEmpty()) { - aCharset.Assign(defCharset); + CopyUCS2toASCII(defCharset, aCharset); aCharsetSource = kCharsetFromWeakDocTypeDefault; } } @@ -663,7 +660,8 @@ nsHTMLDocument::UseWeakDocTypeDefault(PRInt32& aCharsetSource, PRBool nsHTMLDocument::TryChannelCharset(nsIChannel *aChannel, - PRInt32& aCharsetSource, nsAString& aCharset) + PRInt32& aCharsetSource, + nsACString& aCharset) { if(kCharsetFromChannel <= aCharsetSource) { return PR_TRUE; @@ -679,7 +677,7 @@ nsHTMLDocument::TryChannelCharset(nsIChannel *aChannel, rv = calias->GetPreferred(charsetVal, preferred); if(NS_SUCCEEDED(rv)) { - CopyASCIItoUCS2(preferred, aCharset); + aCharset = preferred; aCharsetSource = kCharsetFromChannel; return PR_TRUE; } @@ -691,19 +689,19 @@ nsHTMLDocument::TryChannelCharset(nsIChannel *aChannel, PRBool nsHTMLDocument::TryDefaultCharset( nsIMarkupDocumentViewer* aMarkupDV, - PRInt32& aCharsetSource, - nsAString& aCharset) + PRInt32& aCharsetSource, + nsACString& aCharset) { if(kCharsetFromUserDefault <= aCharsetSource) return PR_TRUE; - PRUnichar* defaultCharsetFromDocShell = NULL; + nsCAutoString defaultCharsetFromDocShell; if (aMarkupDV) { nsresult rv = - aMarkupDV->GetDefaultCharacterSet(&defaultCharsetFromDocShell); + aMarkupDV->GetDefaultCharacterSet(defaultCharsetFromDocShell); if(NS_SUCCEEDED(rv)) { aCharset = defaultCharsetFromDocShell; - Recycle(defaultCharsetFromDocShell); + aCharsetSource = kCharsetFromUserDefault; return PR_TRUE; } @@ -712,7 +710,7 @@ nsHTMLDocument::TryDefaultCharset( nsIMarkupDocumentViewer* aMarkupDV, } void -nsHTMLDocument::StartAutodetection(nsIDocShell *aDocShell, nsAString& aCharset, +nsHTMLDocument::StartAutodetection(nsIDocShell *aDocShell, nsACString& aCharset, const char* aCommand) { nsCOMPtr cdetflt; @@ -751,7 +749,7 @@ nsHTMLDocument::StartAutodetection(nsIDocShell *aDocShell, nsAString& aCharset, nsCOMPtr wss = do_QueryInterface(aDocShell); if (wss) { rv_detect = adp->Init(wss, cdet, this, mParser, - PromiseFlatString(aCharset).get(), aCommand); + PromiseFlatCString(aCharset).get(), aCommand); if (mParser) mParser->SetParserFilter(cdetflt); @@ -900,7 +898,7 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, aURL->GetSpec(urlSpec); PRInt32 charsetSource = kCharsetUninitialized; - nsAutoString charset; + nsCAutoString charset; // The following charset resolving calls has implied knowledge about // charset source priority order. Each try will return true if the @@ -943,8 +941,8 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, } if (isPostPage && muCV && kCharsetFromHintPrevDoc > charsetSource) { - nsXPIDLString requestCharset; - muCV->GetPrevDocCharacterSet(getter_Copies(requestCharset)); + nsCAutoString requestCharset; + muCV->GetPrevDocCharacterSet(requestCharset); if (!requestCharset.IsEmpty()) { charsetSource = kCharsetFromHintPrevDoc; charset = requestCharset; @@ -959,7 +957,7 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, // Check if 864 but in Implicit mode ! if ((mTexttype == IBMBIDI_TEXTTYPE_LOGICAL) && (charset.EqualsIgnoreCase("ibm864"))) { - charset.Assign(NS_LITERAL_STRING("IBM864i")); + charset = NS_LITERAL_CSTRING("IBM864i"); } SetDocumentCharacterSet(charset); @@ -967,11 +965,11 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, // set doc charset to muCV for next document. if (muCV) - muCV->SetPrevDocCharacterSet(charset.get()); + muCV->SetPrevDocCharacterSet(charset); if(cacheDescriptor) { rv = cacheDescriptor->SetMetaDataElement("charset", - NS_ConvertUCS2toUTF8(charset).get()); + charset.get()); NS_ASSERTION(NS_SUCCEEDED(rv),"cannot SetMetaDataElement"); } diff --git a/mozilla/content/html/document/src/nsHTMLDocument.h b/mozilla/content/html/document/src/nsHTMLDocument.h index f2bfd65815b..1388fc30121 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.h +++ b/mozilla/content/html/document/src/nsHTMLDocument.h @@ -295,30 +295,30 @@ protected: static PRBool TryHintCharset(nsIMarkupDocumentViewer* aMarkupDV, PRInt32& aCharsetSource, - nsAString& aCharset); + nsACString& aCharset); static PRBool TryUserForcedCharset(nsIMarkupDocumentViewer* aMarkupDV, nsIDocumentCharsetInfo* aDocInfo, PRInt32& aCharsetSource, - nsAString& aCharset); + nsACString& aCharset); static PRBool TryCacheCharset(nsICacheEntryDescriptor* aCacheDescriptor, PRInt32& aCharsetSource, - nsAString& aCharset); + nsACString& aCharset); static PRBool TryBookmarkCharset(nsIDocShell* aDocShell, nsIChannel* aChannel, PRInt32& aCharsetSource, - nsAString& aCharset); + nsACString& aCharset); static PRBool TryParentCharset(nsIDocumentCharsetInfo* aDocInfo, - PRInt32& charsetSource, nsAString& aCharset); + PRInt32& charsetSource, nsACString& aCharset); static PRBool UseWeakDocTypeDefault(PRInt32& aCharsetSource, - nsAString& aCharset); + nsACString& aCharset); static PRBool TryChannelCharset(nsIChannel *aChannel, PRInt32& aCharsetSource, - nsAString& aCharset); + nsACString& aCharset); static PRBool TryDefaultCharset(nsIMarkupDocumentViewer* aMarkupDV, PRInt32& aCharsetSource, - nsAString& aCharset); + nsACString& aCharset); - void StartAutodetection(nsIDocShell *aDocShell, nsAString& aCharset, + void StartAutodetection(nsIDocShell *aDocShell, nsACString& aCharset, const char* aCommand); PRUint32 mIsWriting : 1; diff --git a/mozilla/content/html/document/src/nsHTMLFragmentContentSink.cpp b/mozilla/content/html/document/src/nsHTMLFragmentContentSink.cpp index ba86ba91121..1e5fd4f33ea 100644 --- a/mozilla/content/html/document/src/nsHTMLFragmentContentSink.cpp +++ b/mozilla/content/html/document/src/nsHTMLFragmentContentSink.cpp @@ -82,7 +82,7 @@ public: NS_IMETHOD WillResume(void); NS_IMETHOD SetParser(nsIParser* aParser); NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset) { return NS_OK; } + NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; } // nsIHTMLContentSink NS_IMETHOD BeginContext(PRInt32 aID); diff --git a/mozilla/content/html/document/src/nsMediaDocument.cpp b/mozilla/content/html/document/src/nsMediaDocument.cpp index 368326031ab..30c1a159f67 100644 --- a/mozilla/content/html/document/src/nsMediaDocument.cpp +++ b/mozilla/content/html/document/src/nsMediaDocument.cpp @@ -259,7 +259,7 @@ nsMediaDocument::UpdateTitleAndCharset(const nsACString& aTypeStr, if (!originCharset.IsEmpty()) { // set doc. charset to that of the referring document if known so that // filepicker comes up with the correct non-ascii filename. - SetDocumentCharacterSet(NS_ConvertASCIItoUCS2(originCharset)); + SetDocumentCharacterSet(originCharset); if (!fileName.IsEmpty()) { nsresult rv; nsCOMPtr textToSubURI = diff --git a/mozilla/content/html/style/src/nsCSSLoader.cpp b/mozilla/content/html/style/src/nsCSSLoader.cpp index a2655ea385c..9aabceb4cb7 100644 --- a/mozilla/content/html/style/src/nsCSSLoader.cpp +++ b/mozilla/content/html/style/src/nsCSSLoader.cpp @@ -633,9 +633,7 @@ SheetLoadData::OnDetermineCharset(nsIUnicharStreamLoader* aLoader, if (NS_FAILED(result) && mLoader->mDocument) { // no useful data on charset. Try the document charset. // That needs no resolution, since it's already fully resolved - nsAutoString docCharset; - mLoader->mDocument->GetDocumentCharacterSet(docCharset); - CopyUCS2toASCII(docCharset, charset); + mLoader->mDocument->GetDocumentCharacterSet(charset); #ifdef DEBUG_bzbarsky fprintf(stderr, "Set from document: %s\n", charset.get()); diff --git a/mozilla/content/shared/src/nsHTMLUtils.cpp b/mozilla/content/shared/src/nsHTMLUtils.cpp index 85434a07a47..1227f56a801 100644 --- a/mozilla/content/shared/src/nsHTMLUtils.cpp +++ b/mozilla/content/shared/src/nsHTMLUtils.cpp @@ -84,7 +84,7 @@ NS_MakeAbsoluteURIWithCharset(nsACString &aResult, nsCOMPtr absURI; nsresult rv; - nsAutoString originCharset; // XXX why store charset as UCS2? + nsCAutoString originCharset; // XXX why store charset as UCS2? if (aDocument && NS_FAILED(aDocument->GetDocumentCharacterSet(originCharset))) originCharset.Truncate(); @@ -96,7 +96,7 @@ NS_MakeAbsoluteURIWithCharset(nsACString &aResult, originCharset.Truncate(); rv = nsHTMLUtils::IOService->NewURI(NS_ConvertUCS2toUTF8(aSpec), - NS_LossyConvertUCS2toASCII(originCharset).get(), + originCharset.get(), aBaseURI, getter_AddRefs(absURI)); if (NS_FAILED(rv)) return rv; diff --git a/mozilla/content/xml/document/src/nsXMLContentSink.cpp b/mozilla/content/xml/document/src/nsXMLContentSink.cpp index 37b6fcebaa3..1c41586cb1b 100644 --- a/mozilla/content/xml/document/src/nsXMLContentSink.cpp +++ b/mozilla/content/xml/document/src/nsXMLContentSink.cpp @@ -361,12 +361,11 @@ nsXMLContentSink::ScrollToRef(PRBool aReallyScroll) // document's charset. if (NS_FAILED(rv)) { - nsAutoString docCharset; + nsCAutoString docCharset; rv = mDocument->GetDocumentCharacterSet(docCharset); if (NS_SUCCEEDED(rv)) { - rv = CharsetConvRef(NS_LossyConvertUCS2toASCII(docCharset), - unescapedRef, ref); + rv = CharsetConvRef(docCharset, unescapedRef, ref); if (NS_SUCCEEDED(rv) && !ref.IsEmpty()) rv = shell->GoToAnchor(ref, aReallyScroll); @@ -1235,7 +1234,7 @@ nsXMLContentSink::ProcessMETATag(nsIContent* aContent) } NS_IMETHODIMP -nsXMLContentSink::SetDocumentCharset(nsAString& aCharset) +nsXMLContentSink::SetDocumentCharset(nsACString& aCharset) { if (mDocument) { return mDocument->SetDocumentCharacterSet(aCharset); diff --git a/mozilla/content/xml/document/src/nsXMLContentSink.h b/mozilla/content/xml/document/src/nsXMLContentSink.h index 891b8a15066..023b8edd869 100644 --- a/mozilla/content/xml/document/src/nsXMLContentSink.h +++ b/mozilla/content/xml/document/src/nsXMLContentSink.h @@ -105,7 +105,7 @@ public: NS_IMETHOD WillResume(void); NS_IMETHOD SetParser(nsIParser* aParser); NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset); + NS_IMETHOD SetDocumentCharset(nsACString& aCharset); // nsICSSLoaderObserver NS_IMETHOD StyleSheetLoaded(nsICSSStyleSheet*aSheet, PRBool aNotify); diff --git a/mozilla/content/xml/document/src/nsXMLDocument.cpp b/mozilla/content/xml/document/src/nsXMLDocument.cpp index 60179f15328..ab91a08f048 100644 --- a/mozilla/content/xml/document/src/nsXMLDocument.cpp +++ b/mozilla/content/xml/document/src/nsXMLDocument.cpp @@ -606,7 +606,7 @@ nsXMLDocument::StartDocumentLoad(const char* aCommand, aDocListener, aReset, aSink); if (NS_FAILED(rv)) return rv; - nsAutoString charset(NS_LITERAL_STRING("UTF-8")); + nsCAutoString charset(NS_LITERAL_CSTRING("UTF-8")); PRInt32 charsetSource = kCharsetFromDocTypeDefault; nsCOMPtr aUrl; @@ -621,9 +621,8 @@ nsXMLDocument::StartDocumentLoad(const char* aCommand, if(NS_SUCCEEDED(rv) && (nsnull != calias) ) { nsCAutoString preferred; - rv = calias->GetPreferred(charsetVal, preferred); + rv = calias->GetPreferred(charsetVal, charset); if(NS_SUCCEEDED(rv)){ - CopyASCIItoUCS2(preferred, charset); charsetSource = kCharsetFromChannel; } } diff --git a/mozilla/content/xul/document/src/nsXULContentSink.cpp b/mozilla/content/xul/document/src/nsXULContentSink.cpp index 7f884612ffb..498ca568e63 100644 --- a/mozilla/content/xul/document/src/nsXULContentSink.cpp +++ b/mozilla/content/xul/document/src/nsXULContentSink.cpp @@ -137,7 +137,7 @@ public: NS_IMETHOD WillResume(void); NS_IMETHOD SetParser(nsIParser* aParser); NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset); + NS_IMETHOD SetDocumentCharset(nsACString& aCharset); // nsIXULContentSink NS_IMETHOD Init(nsIDocument* aDocument, nsIXULPrototypeDocument* aPrototype); @@ -575,7 +575,7 @@ XULContentSinkImpl::ProcessStyleLink(nsIContent* aElement, } NS_IMETHODIMP -XULContentSinkImpl::SetDocumentCharset(nsAString& aCharset) +XULContentSinkImpl::SetDocumentCharset(nsACString& aCharset) { nsCOMPtr doc = do_QueryReferent(mDocument); if (doc) { diff --git a/mozilla/content/xul/document/src/nsXULDocument.cpp b/mozilla/content/xul/document/src/nsXULDocument.cpp index 14d31e80566..fec0e8e58b8 100644 --- a/mozilla/content/xul/document/src/nsXULDocument.cpp +++ b/mozilla/content/xul/document/src/nsXULDocument.cpp @@ -366,7 +366,7 @@ nsXULDocument::nsXULDocument(void) // bother initializing members to 0. // Override the default in nsDocument - mCharacterSet.Assign(NS_LITERAL_STRING("UTF-8")); + mCharacterSet.Assign(NS_LITERAL_CSTRING("UTF-8")); } nsXULDocument::~nsXULDocument() @@ -2459,7 +2459,7 @@ nsXULDocument::PrepareToLoadPrototype(nsIURI* aURI, const char* aCommand, parser->SetCommand(nsCRT::strcmp(aCommand, "view-source") ? eViewNormal : eViewSource); - parser->SetDocumentCharset(NS_LITERAL_STRING("UTF-8"), + parser->SetDocumentCharset(NS_LITERAL_CSTRING("UTF-8"), kCharsetFromDocTypeDefault); parser->SetContentSink(sink); // grabs a reference to the parser diff --git a/mozilla/docshell/base/nsDocShell.cpp b/mozilla/docshell/base/nsDocShell.cpp index 46f3c218cd1..9c552391946 100644 --- a/mozilla/docshell/base/nsDocShell.cpp +++ b/mozilla/docshell/base/nsDocShell.cpp @@ -1113,13 +1113,13 @@ nsresult nsDocShell::FindTarget(const PRUnichar *aWindowTarget, muCV = do_QueryInterface(cv); target_muCV = do_QueryInterface(target_cv); if (muCV && target_muCV) { - nsXPIDLString defaultCharset; - nsXPIDLString prevDocCharset; - rv = muCV->GetDefaultCharacterSet(getter_Copies(defaultCharset)); + nsCAutoString defaultCharset; + nsCAutoString prevDocCharset; + rv = muCV->GetDefaultCharacterSet(defaultCharset); if(NS_SUCCEEDED(rv)) { target_muCV->SetDefaultCharacterSet(defaultCharset); } - rv = muCV->GetPrevDocCharacterSet(getter_Copies(prevDocCharset)); + rv = muCV->GetPrevDocCharacterSet(prevDocCharset); if(NS_SUCCEEDED(rv)) { target_muCV->SetPrevDocCharacterSet(prevDocCharset); } @@ -1326,7 +1326,7 @@ nsDocShell::SetCurrentURI(nsIURI *aURI) } NS_IMETHODIMP -nsDocShell::GetCharset(PRUnichar** aCharset) +nsDocShell::GetCharset(char** aCharset) { NS_ENSURE_ARG_POINTER(aCharset); *aCharset = nsnull; @@ -1337,15 +1337,15 @@ nsDocShell::GetCharset(PRUnichar** aCharset) NS_ENSURE_TRUE(presShell, NS_ERROR_FAILURE); presShell->GetDocument(getter_AddRefs(doc)); NS_ENSURE_TRUE(doc, NS_ERROR_FAILURE); - nsAutoString charset; + nsCAutoString charset; NS_ENSURE_SUCCESS(doc->GetDocumentCharacterSet(charset), NS_ERROR_FAILURE); - *aCharset = ToNewUnicode(charset); + *aCharset = ToNewCString(charset); return NS_OK; } NS_IMETHODIMP -nsDocShell::SetCharset(const PRUnichar* aCharset) +nsDocShell::SetCharset(const char* aCharset) { // set the default charset nsCOMPtr viewer; @@ -1353,8 +1353,8 @@ nsDocShell::SetCharset(const PRUnichar* aCharset) if (viewer) { nsCOMPtr muDV(do_QueryInterface(viewer)); if (muDV) { - NS_ENSURE_SUCCESS(muDV->SetDefaultCharacterSet(aCharset), - NS_ERROR_FAILURE); + NS_ENSURE_SUCCESS(muDV->SetDefaultCharacterSet(nsDependentCString(aCharset)), + NS_ERROR_FAILURE); } } @@ -2081,7 +2081,7 @@ nsDocShell::AddChild(nsIDocShellTreeItem * aChild) res = docv->GetDocument(getter_AddRefs(doc)); if (NS_FAILED(res) || (!doc)) return NS_OK; - nsAutoString parentCS; + nsCAutoString parentCS; res = doc->GetDocumentCharacterSet(parentCS); if (NS_FAILED(res)) return NS_OK; @@ -4663,11 +4663,11 @@ nsDocShell::SetupNewViewer(nsIContentViewer * aNewViewer) NS_ERROR_FAILURE); nsCOMPtr parent(do_QueryInterface(parentAsItem)); - nsXPIDLString defaultCharset; - nsXPIDLString forceCharset; - nsXPIDLString hintCharset; + nsCAutoString defaultCharset; + nsCAutoString forceCharset; + nsCAutoString hintCharset; PRInt32 hintCharsetSource; - nsXPIDLString prevDocCharset; + nsCAutoString prevDocCharset; float textZoom; // |newMUDV| also serves as a flag to set the data from the above vars nsCOMPtr newMUDV; @@ -4693,14 +4693,13 @@ nsDocShell::SetupNewViewer(nsIContentViewer * aNewViewer) newMUDV = do_QueryInterface(aNewViewer,&rv); if (newMUDV) { NS_ENSURE_SUCCESS(oldMUDV-> - GetDefaultCharacterSet(getter_Copies - (defaultCharset)), + GetDefaultCharacterSet(defaultCharset), NS_ERROR_FAILURE); NS_ENSURE_SUCCESS(oldMUDV-> - GetForceCharacterSet(getter_Copies(forceCharset)), + GetForceCharacterSet(forceCharset), NS_ERROR_FAILURE); NS_ENSURE_SUCCESS(oldMUDV-> - GetHintCharacterSet(getter_Copies(hintCharset)), + GetHintCharacterSet(hintCharset), NS_ERROR_FAILURE); NS_ENSURE_SUCCESS(oldMUDV-> GetHintCharacterSetSource(&hintCharsetSource), @@ -4709,7 +4708,7 @@ nsDocShell::SetupNewViewer(nsIContentViewer * aNewViewer) GetTextZoom(&textZoom), NS_ERROR_FAILURE); NS_ENSURE_SUCCESS(oldMUDV-> - GetPrevDocCharacterSet(getter_Copies(prevDocCharset)), + GetPrevDocCharacterSet(prevDocCharset), NS_ERROR_FAILURE); } } @@ -5829,7 +5828,7 @@ nsDocShell::ScrollIfAnchor(nsIURI * aURI, PRBool * aWasAnchor, nsCOMPtr doc; rv = docv->GetDocument(getter_AddRefs(doc)); NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE); - nsAutoString aCharset; + nsCAutoString aCharset; rv = doc->GetDocumentCharacterSet(aCharset); NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE); @@ -5840,9 +5839,8 @@ nsDocShell::ScrollIfAnchor(nsIURI * aURI, PRBool * aWasAnchor, // Unescape and convert to unicode nsXPIDLString uStr; - NS_LossyConvertUCS2toASCII charset(aCharset); - rv = textToSubURI->UnEscapeAndConvert(charset.get(), + rv = textToSubURI->UnEscapeAndConvert(aCharset.get(), PromiseFlatCString(sNewRef).get(), getter_Copies(uStr)); NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE); diff --git a/mozilla/docshell/base/nsIMarkupDocumentViewer.idl b/mozilla/docshell/base/nsIMarkupDocumentViewer.idl index 7c804d5ddef..519d0b91242 100644 --- a/mozilla/docshell/base/nsIMarkupDocumentViewer.idl +++ b/mozilla/docshell/base/nsIMarkupDocumentViewer.idl @@ -53,17 +53,17 @@ interface nsIMarkupDocumentViewer : nsISupports /* XXX Comment here! */ - attribute wstring defaultCharacterSet; + attribute ACString defaultCharacterSet; /* XXX Comment here! */ - attribute wstring forceCharacterSet; + attribute ACString forceCharacterSet; /* XXX Comment here! */ - attribute wstring hintCharacterSet; + attribute ACString hintCharacterSet; /* XXX Comment here! @@ -73,7 +73,7 @@ interface nsIMarkupDocumentViewer : nsISupports /* character set from prev document */ - attribute wstring prevDocCharacterSet; + attribute ACString prevDocCharacterSet; //void GetCharacterSetHint(in wstring hintCharset, in PRInt32 charsetSource); diff --git a/mozilla/docshell/base/nsWebShell.cpp b/mozilla/docshell/base/nsWebShell.cpp index cc1659837da..43ff63e6863 100644 --- a/mozilla/docshell/base/nsWebShell.cpp +++ b/mozilla/docshell/base/nsWebShell.cpp @@ -389,7 +389,7 @@ nsWebShell::LoadDocument(const char* aURL, muDV->GetHintCharacterSetSource(&hint); if( aSource > hint ) { - muDV->SetHintCharacterSet(NS_ConvertASCIItoUCS2(aCharset).get()); + muDV->SetHintCharacterSet(nsDependentCString(aCharset)); muDV->SetHintCharacterSetSource(aSource); if(eCharsetReloadRequested != mCharsetReloadState) { @@ -425,7 +425,7 @@ nsWebShell::ReloadDocument(const char* aCharset, muDV->GetHintCharacterSetSource(&hint); if( aSource > hint ) { - muDV->SetHintCharacterSet(NS_ConvertASCIItoUCS2(aCharset).get()); + muDV->SetHintCharacterSet(nsDependentCString(aCharset)); muDV->SetHintCharacterSetSource(aSource); if(eCharsetReloadRequested != mCharsetReloadState) { diff --git a/mozilla/dom/src/base/nsGlobalWindow.cpp b/mozilla/dom/src/base/nsGlobalWindow.cpp index f2176ba8013..1b9d5d49bb3 100644 --- a/mozilla/dom/src/base/nsGlobalWindow.cpp +++ b/mozilla/dom/src/base/nsGlobalWindow.cpp @@ -3469,14 +3469,13 @@ GlobalWindowImpl::ConvertCharset(const nsAString& aStr, { nsresult result = NS_OK; nsCOMPtr encoder; - nsAutoString charset; nsCOMPtr ccm(do_GetService(kCharsetConverterManagerCID)); NS_ENSURE_TRUE(ccm, NS_ERROR_FAILURE); // Get the document character set - charset.Assign(NS_LITERAL_STRING("UTF-8")); // default to utf-8 + nsCAutoString charset(NS_LITERAL_CSTRING("UTF-8")); // default to utf-8 if (mDocument) { nsCOMPtr doc(do_QueryInterface(mDocument)); @@ -3487,7 +3486,7 @@ GlobalWindowImpl::ConvertCharset(const nsAString& aStr, return result; // Get an encoder for the character set - result = ccm->GetUnicodeEncoderRaw(NS_LossyConvertUCS2toASCII(charset).get(), + result = ccm->GetUnicodeEncoderRaw(charset.get(), getter_AddRefs(encoder)); if (NS_FAILED(result)) return result; @@ -3580,7 +3579,7 @@ GlobalWindowImpl::Unescape(const nsAString& aStr, NS_ENSURE_TRUE(ccm, NS_ERROR_NOT_AVAILABLE); // Get the document character set; default to utf-8 if all else fails - nsAutoString charset(NS_LITERAL_STRING("UTF-8")); + nsCAutoString charset(NS_LITERAL_CSTRING("UTF-8")); if (mDocument) { nsCOMPtr doc(do_QueryInterface(mDocument)); @@ -3593,7 +3592,7 @@ GlobalWindowImpl::Unescape(const nsAString& aStr, // Get a decoder for the character set nsCOMPtr decoder; - rv = ccm->GetUnicodeDecoderRaw(NS_LossyConvertUCS2toASCII(charset).get(), + rv = ccm->GetUnicodeDecoderRaw(charset.get(), getter_AddRefs(decoder)); NS_ENSURE_SUCCESS(rv, rv); diff --git a/mozilla/dom/src/base/nsLocation.cpp b/mozilla/dom/src/base/nsLocation.cpp index 559e8d98284..f8fbab39c91 100644 --- a/mozilla/dom/src/base/nsLocation.cpp +++ b/mozilla/dom/src/base/nsLocation.cpp @@ -97,12 +97,7 @@ static nsresult GetDocumentCharacterSetForURI(const nsAString& aHref, nsACString nsCOMPtr doc(do_QueryInterface(domDoc)); NS_ENSURE_TRUE(doc, NS_ERROR_FAILURE); - nsAutoString charset; - rv = doc->GetDocumentCharacterSet(charset); - NS_ENSURE_SUCCESS(rv, rv); - - CopyUCS2toASCII(charset, aCharset); - + rv = doc->GetDocumentCharacterSet(aCharset); return rv; } diff --git a/mozilla/editor/idl/nsIEditor.idl b/mozilla/editor/idl/nsIEditor.idl index e838091c200..36342099bca 100644 --- a/mozilla/editor/idl/nsIEditor.idl +++ b/mozilla/editor/idl/nsIEditor.idl @@ -151,7 +151,7 @@ interface nsIEditor : nsISupports readonly attribute boolean documentModified; /** Sets the current 'Save' document character set */ - attribute AString documentCharacterSet; + attribute ACString documentCharacterSet; /** to be used ONLY when we need to override the doc's modification * state (such as when it's saved). diff --git a/mozilla/editor/libeditor/base/nsEditor.cpp b/mozilla/editor/libeditor/base/nsEditor.cpp index a716baa222e..401d4e957a4 100644 --- a/mozilla/editor/libeditor/base/nsEditor.cpp +++ b/mozilla/editor/libeditor/base/nsEditor.cpp @@ -961,7 +961,7 @@ nsEditor::GetDocumentModified(PRBool *outDocModified) } NS_IMETHODIMP -nsEditor::GetDocumentCharacterSet(nsAString &characterSet) +nsEditor::GetDocumentCharacterSet(nsACString &characterSet) { nsresult rv; nsCOMPtr doc; @@ -981,7 +981,7 @@ nsEditor::GetDocumentCharacterSet(nsAString &characterSet) } NS_IMETHODIMP -nsEditor::SetDocumentCharacterSet(const nsAString& characterSet) +nsEditor::SetDocumentCharacterSet(const nsACString& characterSet) { nsresult rv; nsCOMPtr doc; diff --git a/mozilla/editor/libeditor/text/nsPlaintextEditor.cpp b/mozilla/editor/libeditor/text/nsPlaintextEditor.cpp index 23ce3e473ac..fd7ea303cdc 100644 --- a/mozilla/editor/libeditor/text/nsPlaintextEditor.cpp +++ b/mozilla/editor/libeditor/text/nsPlaintextEditor.cpp @@ -243,7 +243,7 @@ nsPlaintextEditor::EndEditorInit() } NS_IMETHODIMP -nsPlaintextEditor::SetDocumentCharacterSet(const nsAString & characterSet) +nsPlaintextEditor::SetDocumentCharacterSet(const nsACString & characterSet) { nsresult result; @@ -290,7 +290,7 @@ nsPlaintextEditor::SetDocumentCharacterSet(const nsAString & characterSet) // set attribute to charset=text/html result = nsEditor::SetAttribute(metaElement, content, Substring(originalStart, start) + - charsetEquals + characterSet); + charsetEquals + NS_ConvertASCIItoUCS2(characterSet)); if (NS_SUCCEEDED(result)) newMetaCharset = PR_FALSE; break; @@ -321,7 +321,7 @@ nsPlaintextEditor::SetDocumentCharacterSet(const nsAString & characterSet) if (NS_SUCCEEDED(result)) { // not undoable, undo should undo CreateNode result = metaElement->SetAttribute(NS_LITERAL_STRING("content"), - NS_LITERAL_STRING("text/html;charset=") + characterSet); + NS_LITERAL_STRING("text/html;charset=") + NS_ConvertASCIItoUCS2(characterSet)); } } } @@ -1425,7 +1425,7 @@ NS_IMETHODIMP nsPlaintextEditor::CanCopy(PRBool *aCanCopy) NS_IMETHODIMP nsPlaintextEditor::GetAndInitDocEncoder(const nsAString& aFormatType, PRUint32 aFlags, - const nsAString& aCharset, + const nsACString& aCharset, nsIDocumentEncoder** encoder) { nsCOMPtr presShell; @@ -1446,7 +1446,7 @@ nsPlaintextEditor::GetAndInitDocEncoder(const nsAString& aFormatType, NS_ENSURE_SUCCESS(rv, rv); if (!aCharset.IsEmpty() - && !(aCharset.Equals(NS_LITERAL_STRING("null")))) + && !(aCharset.Equals(NS_LITERAL_CSTRING("null")))) docEncoder->SetCharset(aCharset); PRInt32 wc; @@ -1530,10 +1530,10 @@ nsPlaintextEditor::OutputToString(const nsAString& aFormatType, return rv; } - nsAutoString charsetStr; + nsCAutoString charsetStr; rv = GetDocumentCharacterSet(charsetStr); if(NS_FAILED(rv) || charsetStr.IsEmpty()) - charsetStr = NS_LITERAL_STRING("ISO-8859-1"); + charsetStr = NS_LITERAL_CSTRING("ISO-8859-1"); nsCOMPtr encoder; rv = GetAndInitDocEncoder(aFormatType, aFlags, charsetStr, getter_AddRefs(encoder)); @@ -1547,7 +1547,7 @@ nsPlaintextEditor::OutputToString(const nsAString& aFormatType, NS_IMETHODIMP nsPlaintextEditor::OutputToStream(nsIOutputStream* aOutputStream, const nsAString& aFormatType, - const nsAString& aCharset, + const nsACString& aCharset, PRUint32 aFlags) { nsresult rv; diff --git a/mozilla/editor/libeditor/text/nsPlaintextEditor.h b/mozilla/editor/libeditor/text/nsPlaintextEditor.h index 499a85aff8f..40821d70c40 100644 --- a/mozilla/editor/libeditor/text/nsPlaintextEditor.h +++ b/mozilla/editor/libeditor/text/nsPlaintextEditor.h @@ -123,7 +123,7 @@ public: NS_IMETHOD DeleteSelection(EDirection aAction); - NS_IMETHOD SetDocumentCharacterSet(const nsAString & characterSet); + NS_IMETHOD SetDocumentCharacterSet(const nsACString & characterSet); /** we override this here to install event listeners */ NS_IMETHOD PostCreate(); @@ -151,7 +151,7 @@ public: NS_IMETHOD OutputToStream(nsIOutputStream* aOutputStream, const nsAString& aFormatType, - const nsAString& aCharsetOverride, + const nsACString& aCharsetOverride, PRUint32 aFlags); @@ -212,7 +212,7 @@ protected: // Helpers for output routines NS_IMETHOD GetAndInitDocEncoder(const nsAString& aFormatType, PRUint32 aFlags, - const nsAString& aCharset, + const nsACString& aCharset, nsIDocumentEncoder** encoder); // key event helpers diff --git a/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.cpp b/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.cpp index 72d08bb972b..9e7eafc1ac9 100644 --- a/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.cpp +++ b/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.cpp @@ -1572,7 +1572,7 @@ nsresult nsWebBrowserPersist::SaveDocumentInternal( getter_Copies(realContentType)); nsCAutoString contentType; contentType.AssignWithConversion(realContentType); - nsAutoString charType; // Empty + nsCAutoString charType; // Empty // Save the document nsCOMPtr docAsDoc = do_QueryInterface(aDocument); @@ -1629,7 +1629,7 @@ nsresult nsWebBrowserPersist::SaveDocuments() getter_Copies(realContentType)); nsCAutoString contentType; contentType.AssignWithConversion(realContentType.get()); - nsAutoString charType; // Empty + nsCAutoString charType; // Empty // Save the document, fixing up the links as it goes out rv = SaveDocumentWithFixup( @@ -3315,7 +3315,7 @@ nsresult nsWebBrowserPersist::SaveDocumentWithFixup( nsIDocument *aDocument, nsIDocumentEncoderNodeFixup *aNodeFixup, nsIURI *aFile, PRBool aReplaceExisting, const nsACString &aFormatType, - const nsString &aSaveCharset, PRUint32 aFlags) + const nsCString &aSaveCharset, PRUint32 aFlags) { NS_ENSURE_ARG_POINTER(aFile); @@ -3362,13 +3362,13 @@ nsWebBrowserPersist::SaveDocumentWithFixup( if (mWrapColumn && (aFlags & ENCODE_FLAGS_WRAP)) encoder->SetWrapColumn(mWrapColumn); - nsAutoString charsetStr(aSaveCharset); + nsCAutoString charsetStr(aSaveCharset); if (charsetStr.IsEmpty()) { rv = aDocument->GetDocumentCharacterSet(charsetStr); if(NS_FAILED(rv)) { - charsetStr.Assign(NS_LITERAL_STRING("ISO-8859-1")); + charsetStr = NS_LITERAL_CSTRING("ISO-8859-1"); } } rv = encoder->SetCharset(charsetStr); diff --git a/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.h b/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.h index 8a4d52245cd..037b1d7494f 100644 --- a/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.h +++ b/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.h @@ -131,7 +131,7 @@ private: nsresult SaveDocumentWithFixup( nsIDocument *pDocument, nsIDocumentEncoderNodeFixup *pFixup, nsIURI *aFile, PRBool aReplaceExisting, const nsACString &aFormatType, - const nsString &aSaveCharset, PRUint32 aFlags); + const nsCString &aSaveCharset, PRUint32 aFlags); nsresult SaveSubframeContent( nsIDOMDocument *aFrameContent, URIData *aData); nsresult SetDocumentBase(nsIDOMDocument *aDocument, nsIURI *aBaseURI); diff --git a/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp b/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp index 915b54ad1a0..ef669907b3d 100644 --- a/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp +++ b/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp @@ -702,7 +702,7 @@ nsWindowWatcher::OpenWindowJS(nsIDOMWindow *aParent, newDocShell->GetContentViewer(getter_AddRefs(newContentViewer)); nsCOMPtr newMarkupDocViewer(do_QueryInterface(newContentViewer)); if (doc && newMarkupDocViewer) { - nsXPIDLString charset; + nsCAutoString charset; rv = doc->GetDocumentCharacterSet(charset); if (NS_SUCCEEDED(rv)) newMarkupDocViewer->SetDefaultCharacterSet(charset); diff --git a/mozilla/extensions/transformiix/source/xslt/txMozillaStylesheetCompiler.cpp b/mozilla/extensions/transformiix/source/xslt/txMozillaStylesheetCompiler.cpp index b30e8c8c6ba..273af8fc7c8 100644 --- a/mozilla/extensions/transformiix/source/xslt/txMozillaStylesheetCompiler.cpp +++ b/mozilla/extensions/transformiix/source/xslt/txMozillaStylesheetCompiler.cpp @@ -111,7 +111,7 @@ public: NS_IMETHOD WillResume(void) { return NS_OK; } NS_IMETHOD SetParser(nsIParser* aParser) { return NS_OK; } NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset) { return NS_OK; } + NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; } private: nsRefPtr mCompiler; @@ -296,7 +296,7 @@ txStylesheetSink::OnStartRequest(nsIRequest *aRequest, nsISupports *aContext) } nsCOMPtr parser = do_QueryInterface(aContext); - parser->SetDocumentCharset(NS_ConvertASCIItoUCS2(charset), charsetSource); + parser->SetDocumentCharset(charset, charsetSource); nsCAutoString contentType; channel->GetContentType(contentType); diff --git a/mozilla/extensions/xmlextras/base/src/nsDOMSerializer.cpp b/mozilla/extensions/xmlextras/base/src/nsDOMSerializer.cpp index b5cf435e9fb..c10d745704d 100644 --- a/mozilla/extensions/xmlextras/base/src/nsDOMSerializer.cpp +++ b/mozilla/extensions/xmlextras/base/src/nsDOMSerializer.cpp @@ -99,9 +99,9 @@ static nsresult SetUpEncoder(nsIDOMNode *aRoot, const char* aCharset, nsIDocumen if (NS_FAILED(rv)) return rv; - nsAutoString charset; + nsCAutoString charset; if (aCharset) { - charset.AssignWithConversion(aCharset); + charset = aCharset; } else { rv = document->GetDocumentCharacterSet(charset); if (NS_FAILED(rv)) diff --git a/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp b/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp index b240f88855c..c5c55dd81cc 100644 --- a/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp +++ b/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp @@ -355,7 +355,7 @@ NS_IMETHODIMP nsXMLHttpRequest::GetResponseXML(nsIDOMDocument **aResponseXML) * from HTTP headers. */ nsresult -nsXMLHttpRequest::DetectCharset(nsAString& aCharset) +nsXMLHttpRequest::DetectCharset(nsACString& aCharset) { aCharset.Truncate(); nsresult rv; @@ -364,11 +364,7 @@ nsXMLHttpRequest::DetectCharset(nsAString& aCharset) if (NS_SUCCEEDED(rv)) { nsCOMPtr calias(do_GetService(kCharsetAliasCID,&rv)); if(NS_SUCCEEDED(rv) && calias) { - nsCAutoString preferred; - rv = calias->GetPreferred(charsetVal, preferred); - if(NS_SUCCEEDED(rv)) { - CopyASCIItoUCS2(preferred, aCharset); - } + rv = calias->GetPreferred(charsetVal, aCharset); } } return rv; @@ -390,7 +386,7 @@ nsXMLHttpRequest::ConvertBodyToText(PRUnichar **aOutBuffer) nsresult rv = NS_OK; - nsAutoString dataCharset; + nsCAutoString dataCharset; nsCOMPtr document(do_QueryInterface(mDocument)); if (document) { rv = document->GetDocumentCharacterSet(dataCharset); @@ -399,11 +395,11 @@ nsXMLHttpRequest::ConvertBodyToText(PRUnichar **aOutBuffer) } else { if (NS_FAILED(DetectCharset(dataCharset)) || dataCharset.IsEmpty()) { // MS documentation states UTF-8 is default for responseText - dataCharset.Assign(NS_LITERAL_STRING("UTF-8")); + dataCharset.Assign(NS_LITERAL_CSTRING("UTF-8")); } } - if (dataCharset.Equals(NS_LITERAL_STRING("ASCII"))) { + if (dataCharset.Equals(NS_LITERAL_CSTRING("ASCII"))) { *aOutBuffer = ToNewUnicode(nsDependentCString(mResponseBody.get(),dataLen)); if (!*aOutBuffer) return NS_ERROR_OUT_OF_MEMORY; @@ -415,7 +411,7 @@ nsXMLHttpRequest::ConvertBodyToText(PRUnichar **aOutBuffer) return rv; nsCOMPtr decoder; - rv = ccm->GetUnicodeDecoderRaw(NS_LossyConvertUCS2toASCII(dataCharset).get(), + rv = ccm->GetUnicodeDecoderRaw(dataCharset.get(), getter_AddRefs(decoder)); if (NS_FAILED(rv)) return rv; diff --git a/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.h b/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.h index 3f2a3a30dc0..2db968ddef3 100644 --- a/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.h +++ b/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.h @@ -108,7 +108,7 @@ protected: nsresult GetStreamForWString(const PRUnichar* aStr, PRInt32 aLength, nsIInputStream** aStream); - nsresult DetectCharset(nsAString& aCharset); + nsresult DetectCharset(nsACString& aCharset); nsresult ConvertBodyToText(PRUnichar **aOutBuffer); static NS_METHOD StreamReaderFunc(nsIInputStream* in, void* closure, diff --git a/mozilla/gfx/src/gtk/nsFontMetricsGTK.cpp b/mozilla/gfx/src/gtk/nsFontMetricsGTK.cpp index ec4b482ce72..a6e9fe5fefe 100644 --- a/mozilla/gfx/src/gtk/nsFontMetricsGTK.cpp +++ b/mozilla/gfx/src/gtk/nsFontMetricsGTK.cpp @@ -1369,7 +1369,7 @@ NS_IMETHODIMP nsFontMetricsGTK::Init(const nsFont& aFont, nsIAtom* aLangGroup, { NS_ASSERTION(!(nsnull == aContext), "attempt to init fontmetrics with null device context"); - nsresult res; + nsresult res = NS_OK; mDocConverterType = nsnull; if (!gInitialized) { diff --git a/mozilla/htmlparser/public/nsIContentSink.h b/mozilla/htmlparser/public/nsIContentSink.h index d56686eea27..6fead0ec8ec 100644 --- a/mozilla/htmlparser/public/nsIContentSink.h +++ b/mozilla/htmlparser/public/nsIContentSink.h @@ -121,7 +121,7 @@ public: * Set the document character set. This should be passed on to the * document itself. */ - NS_IMETHOD SetDocumentCharset(nsAString& aCharset)=0; + NS_IMETHOD SetDocumentCharset(nsACString& aCharset)=0; }; #endif /* nsIContentSink_h___ */ diff --git a/mozilla/htmlparser/public/nsIParser.h b/mozilla/htmlparser/public/nsIParser.h index 8c8f33617b7..9d683094e00 100644 --- a/mozilla/htmlparser/public/nsIParser.h +++ b/mozilla/htmlparser/public/nsIParser.h @@ -188,8 +188,8 @@ class nsIParser : public nsISupports { * @param aCharsetSource- the soure of the chares * @return nada */ - NS_IMETHOD_(void) SetDocumentCharset(const nsAString& aCharset, PRInt32 aSource)=0; - NS_IMETHOD_(void) GetDocumentCharset(nsAString& oCharset, PRInt32& oSource)=0; + NS_IMETHOD_(void) SetDocumentCharset(const nsACString& aCharset, PRInt32 aSource)=0; + NS_IMETHOD_(void) GetDocumentCharset(nsACString& oCharset, PRInt32& oSource)=0; NS_IMETHOD_(void) SetParserFilter(nsIParserFilter* aFilter) = 0; diff --git a/mozilla/htmlparser/robot/nsRobotSink.cpp b/mozilla/htmlparser/robot/nsRobotSink.cpp index 7c555e62198..7e8b9221109 100644 --- a/mozilla/htmlparser/robot/nsRobotSink.cpp +++ b/mozilla/htmlparser/robot/nsRobotSink.cpp @@ -106,7 +106,7 @@ public: NS_IMETHOD WillResume(void) { return NS_OK; } NS_IMETHOD SetParser(nsIParser* aParser) { return NS_OK; } NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset) { return NS_OK; } + NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; } NS_IMETHOD WillProcessTokens(void) { return NS_OK; } NS_IMETHOD DidProcessTokens(void) { return NS_OK; } NS_IMETHOD WillProcessAToken(void) { return NS_OK; } diff --git a/mozilla/htmlparser/src/nsDTDUtils.cpp b/mozilla/htmlparser/src/nsDTDUtils.cpp index c0adb60fa69..3adb451f424 100644 --- a/mozilla/htmlparser/src/nsDTDUtils.cpp +++ b/mozilla/htmlparser/src/nsDTDUtils.cpp @@ -1574,9 +1574,10 @@ nsObserverEntry::Notify(nsIParserNode* aNode, if (theTag <= NS_HTML_TAG_MAX) { nsVoidArray* theObservers = mObservers[theTag]; if (theObservers) { - nsAutoString theCharsetValue; PRInt32 theCharsetSource; - aParser->GetDocumentCharset(theCharsetValue,theCharsetSource); + nsCAutoString charset; + aParser->GetDocumentCharset(charset,theCharsetSource); + NS_ConvertASCIItoUCS2 theCharsetValue(charset); PRInt32 theAttrCount = aNode->GetAttributeCount(); PRInt32 theObserversCount = theObservers->Count(); diff --git a/mozilla/htmlparser/src/nsLoggingSink.h b/mozilla/htmlparser/src/nsLoggingSink.h index 236c6e57fdf..1c77753920c 100644 --- a/mozilla/htmlparser/src/nsLoggingSink.h +++ b/mozilla/htmlparser/src/nsLoggingSink.h @@ -74,7 +74,7 @@ public: NS_IMETHOD AddProcessingInstruction(const nsIParserNode& aNode); NS_IMETHOD AddDocTypeDecl(const nsIParserNode& aNode); NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset) { return NS_OK; } + NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; } NS_IMETHOD NotifyTagObservers(nsIParserNode* aNode) { return NS_OK; } // nsIHTMLContentSink diff --git a/mozilla/htmlparser/src/nsParser.cpp b/mozilla/htmlparser/src/nsParser.cpp index 61e7a7279bc..793f9b78ac7 100644 --- a/mozilla/htmlparser/src/nsParser.cpp +++ b/mozilla/htmlparser/src/nsParser.cpp @@ -305,7 +305,7 @@ nsParser::nsParser() { } #endif - mCharset.Assign(NS_LITERAL_STRING("ISO-8859-1")); + mCharset.Assign(NS_LITERAL_CSTRING("ISO-8859-1")); mParserContext=0; mStreamStatus=0; mCharsetSource=kCharsetUninitialized; @@ -487,7 +487,7 @@ NS_IMETHODIMP_(void) nsParser::SetCommand(eParserCommands aParserCommand) * @return nada */ NS_IMETHODIMP_(void) -nsParser::SetDocumentCharset(const nsAString& aCharset, PRInt32 aCharsetSource) +nsParser::SetDocumentCharset(const nsACString& aCharset, PRInt32 aCharsetSource) { mCharset = aCharset; mCharsetSource = aCharsetSource; @@ -495,7 +495,7 @@ nsParser::SetDocumentCharset(const nsAString& aCharset, PRInt32 aCharsetSource) mParserContext->mScanner->SetDocumentCharset(aCharset, aCharsetSource); } -void nsParser::SetSinkCharset(nsAString& aCharset) +void nsParser::SetSinkCharset(nsACString& aCharset) { if (mSink) { mSink->SetDocumentCharset(aCharset); @@ -1998,7 +1998,7 @@ static inline PRBool IsSecondMarker(unsigned char aChar) } } -static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsString& oCharset, PRInt32& oCharsetSource) { +static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsCString& oCharset, PRInt32& oCharsetSource) { oCharsetSource= kCharsetFromAutoDetection; oCharset.Truncate(); // See http://www.w3.org/TR/2000/REC-xml-20001006#sec-guessing @@ -2013,26 +2013,26 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS // 00 00 if((0xFE==aBytes[2]) && (0xFF==aBytes[3])) { // 00 00 FE FF UCS-4, big-endian machine (1234 order) - oCharset.AssignWithConversion(UCS4_BE); + oCharset.Assign(UCS4_BE); } else if((0x00==aBytes[2]) && (0x3C==aBytes[3])) { // 00 00 00 3C UCS-4, big-endian machine (1234 order) - oCharset.AssignWithConversion(UCS4_BE); + oCharset.Assign(UCS4_BE); } else if((0xFF==aBytes[2]) && (0xFE==aBytes[3])) { // 00 00 FF FE UCS-4, unusual octet order (2143) - oCharset.AssignWithConversion(UCS4_2143); + oCharset.Assign(UCS4_2143); } else if((0x3C==aBytes[2]) && (0x00==aBytes[3])) { // 00 00 3C 00 UCS-4, unusual octet order (2143) - oCharset.AssignWithConversion(UCS4_2143); + oCharset.Assign(UCS4_2143); } oCharsetSource = kCharsetFromByteOrderMark; } else if((0x3C==aBytes[1]) && (0x00==aBytes[2])) { // 00 3C 00 if(IsSecondMarker(aBytes[3])) { // 00 3C 00 SM UTF-16, big-endian, no Byte Order Mark - oCharset.AssignWithConversion(UTF16_BE); + oCharset.Assign(UTF16_BE); } else if((0x00==aBytes[3])) { // 00 3C 00 00 UCS-4, unusual octet order (3412) - oCharset.AssignWithConversion(UCS4_3412); + oCharset.Assign(UCS4_3412); } oCharsetSource = kCharsetFromByteOrderMark; } @@ -2042,10 +2042,10 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS // 3C 00 XX 00 if(IsSecondMarker(aBytes[2])) { // 3C 00 SM 00 UTF-16, little-endian, no Byte Order Mark - oCharset.AssignWithConversion(UTF16_LE); + oCharset.Assign(UTF16_LE); } else if((0x00==aBytes[2])) { // 3C 00 00 00 UCS-4, little-endian machine (4321 order) - oCharset.AssignWithConversion(UCS4_LE); + oCharset.Assign(UCS4_LE); } oCharsetSource = kCharsetFromByteOrderMark; // For html, meta tag detector is invoked before this so that we have @@ -2115,7 +2115,7 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS // encoding value is invalid if it is UTF-16 if (count > 0 && (0 != PL_strcmp("UTF-16", (char*)(aBytes+encStart)))) { - oCharset.AssignWithConversion((char*)(aBytes+encStart),count); + oCharset.Assign((char*)(aBytes+encStart),count); oCharsetSource = kCharsetFromMetaTag; } encodingFound = PR_TRUE; @@ -2135,7 +2135,7 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS if((0xBB==aBytes[1]) && (0xBF==aBytes[2])) { // EF BB BF // Win2K UTF-8 BOM - oCharset.AssignWithConversion(UTF8); + oCharset.Assign(UTF8); oCharsetSource= kCharsetFromByteOrderMark; } break; @@ -2143,10 +2143,10 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS if(0xFF==aBytes[1]) { if(0x00==aBytes[2] && 0x00==aBytes[3]) { // FE FF 00 00 UCS-4, unusual octet order (3412) - oCharset.AssignWithConversion(UCS4_3412); + oCharset.Assign(UCS4_3412); } else { // FE FF UTF-16, big-endian - oCharset.AssignWithConversion(UTF16_BE); + oCharset.Assign(UTF16_BE); } oCharsetSource= kCharsetFromByteOrderMark; } @@ -2155,11 +2155,11 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS if(0xFE==aBytes[1]) { if(0x00==aBytes[2] && 0x00==aBytes[3]) // FF FE 00 00 UTF-32, little-endian - oCharset.AssignWithConversion(UCS4_LE); + oCharset.Assign(UCS4_LE); else // FF FE // UTF-16, little-endian - oCharset.AssignWithConversion(UTF16_LE); + oCharset.Assign(UTF16_LE); oCharsetSource= kCharsetFromByteOrderMark; } break; @@ -2181,7 +2181,7 @@ inline const char GetNextChar(nsACString::const_iterator& aStart, PRBool nsParser::DetectMetaTag(const char* aBytes, PRInt32 aLen, - nsString& aCharset, + nsCString& aCharset, PRInt32& aCharsetSource) { aCharsetSource= kCharsetFromMetaTag; @@ -2280,7 +2280,7 @@ nsParser::DetectMetaTag(const char* aBytes, // return true if we successfully got something for charset if (currPos != tokEnd) { - aCharset.Assign(NS_ConvertASCIItoUCS2(currPos.get(), tokEnd.get() - currPos.get())); + aCharset.Assign(currPos.get(), tokEnd.get() - currPos.get()); return PR_TRUE; } @@ -2324,7 +2324,7 @@ ParserWriteFunc(nsIInputStream* in, if(pws->mNeedCharsetCheck) { PRInt32 guessSource; - nsAutoString guess; + nsCAutoString guess; nsCAutoString preferred; pws->mNeedCharsetCheck = PR_FALSE; @@ -2334,7 +2334,7 @@ ParserWriteFunc(nsIInputStream* in, DetectByteOrderMark((const unsigned char*)buf, theNumRead, guess, guessSource))) { nsCOMPtr alias(do_GetService(NS_CHARSETALIAS_CONTRACTID)); - result = alias->GetPreferred(NS_LossyConvertUCS2toASCII(guess), preferred); + result = alias->GetPreferred(guess, preferred); // Only continue if it's a recognized charset and not // one of a designated set that we ignore. if (NS_SUCCEEDED(result) && @@ -2344,9 +2344,9 @@ ParserWriteFunc(nsIInputStream* in, !preferred.Equals(NS_LITERAL_CSTRING("UTF-16LE")) && !preferred.Equals(NS_LITERAL_CSTRING("UTF-32BE")) && !preferred.Equals(NS_LITERAL_CSTRING("UTF-32LE"))))) { - guess.Assign(NS_ConvertASCIItoUCS2(preferred)); + guess = preferred; pws->mParser->SetDocumentCharset(guess, guessSource); - pws->mParser->SetSinkCharset(guess); + pws->mParser->SetSinkCharset(preferred); nsCOMPtr channel(do_QueryInterface(pws->mRequest)); if (channel) { nsCOMPtr cacheToken; @@ -2358,7 +2358,7 @@ ParserWriteFunc(nsIInputStream* in, nsresult rv = #endif cacheDescriptor->SetMetaDataElement("charset", - NS_ConvertUCS2toUTF8(guess).get()); + guess.get()); NS_ASSERTION(NS_SUCCEEDED(rv),"cannot SetMetaDataElement"); } } diff --git a/mozilla/htmlparser/src/nsParser.h b/mozilla/htmlparser/src/nsParser.h index 49c71c30a23..e1676ae776b 100644 --- a/mozilla/htmlparser/src/nsParser.h +++ b/mozilla/htmlparser/src/nsParser.h @@ -160,9 +160,9 @@ class nsParser : public nsIParser, * @param aCharsetSource- the source of the charset * @return nada */ - NS_IMETHOD_(void) SetDocumentCharset(const nsAString& aCharset, PRInt32 aSource); + NS_IMETHOD_(void) SetDocumentCharset(const nsACString& aCharset, PRInt32 aSource); - NS_IMETHOD_(void) GetDocumentCharset(nsAString& aCharset, PRInt32& aSource) + NS_IMETHOD_(void) GetDocumentCharset(nsACString& aCharset, PRInt32& aSource) { aCharset = mCharset; aSource = mCharsetSource; @@ -330,10 +330,10 @@ class nsParser : public nsIParser, */ PRBool DetectMetaTag(const char* aBytes, PRInt32 aLen, - nsString& oCharset, + nsCString& oCharset, PRInt32& oCharsetSource); - void SetSinkCharset(nsAString& aCharset); + void SetSinkCharset(nsACString& aCharset); /** * Removes continue parsing events @@ -453,7 +453,7 @@ protected: PRUint16 mFlags; nsString mUnusedInput; - nsString mCharset; + nsCString mCharset; nsString mCommandStr; diff --git a/mozilla/htmlparser/src/nsScanner.cpp b/mozilla/htmlparser/src/nsScanner.cpp index 153dd8942d2..615283bff97 100644 --- a/mozilla/htmlparser/src/nsScanner.cpp +++ b/mozilla/htmlparser/src/nsScanner.cpp @@ -108,7 +108,7 @@ MOZ_DECL_CTOR_COUNTER(nsScanner) * @param aMode represents the parser mode (nav, other) * @return */ -nsScanner::nsScanner(const nsAString& anHTMLString, const nsString& aCharset, PRInt32 aSource) +nsScanner::nsScanner(const nsAString& anHTMLString, const nsACString& aCharset, PRInt32 aSource) { MOZ_COUNT_CTOR(nsScanner); @@ -134,7 +134,7 @@ nsScanner::nsScanner(const nsAString& anHTMLString, const nsString& aCharset, PR * @param aFilename -- * @return */ -nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& aCharset, PRInt32 aSource) : +nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsACString& aCharset, PRInt32 aSource) : mFilename(aFilename) { MOZ_COUNT_CTOR(nsScanner); @@ -173,7 +173,7 @@ nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& a * @param aFilename -- * @return */ -nsScanner::nsScanner(const nsAString& aFilename,nsIInputStream* aStream,const nsString& aCharset, PRInt32 aSource) : +nsScanner::nsScanner(const nsAString& aFilename,nsIInputStream* aStream,const nsACString& aCharset, PRInt32 aSource) : mFilename(aFilename) { MOZ_COUNT_CTOR(nsScanner); @@ -195,7 +195,7 @@ nsScanner::nsScanner(const nsAString& aFilename,nsIInputStream* aStream,const ns } -nsresult nsScanner::SetDocumentCharset(const nsAString& aCharset , PRInt32 aSource) { +nsresult nsScanner::SetDocumentCharset(const nsACString& aCharset , PRInt32 aSource) { nsresult res = NS_OK; @@ -204,17 +204,17 @@ nsresult nsScanner::SetDocumentCharset(const nsAString& aCharset , PRInt32 aSour nsCOMPtr calias(do_GetService(kCharsetAliasCID, &res)); NS_ASSERTION( nsnull != calias, "cannot find charset alias"); - nsCAutoString charsetName = NS_LossyConvertUCS2toASCII(aCharset); if( NS_SUCCEEDED(res) && (nsnull != calias)) { PRBool same = PR_FALSE; - res = calias->Equals(charsetName, mCharset, &same); + res = calias->Equals(aCharset, mCharset, &same); if(NS_SUCCEEDED(res) && same) { return NS_OK; // no difference, don't change it } // different, need to change it - res = calias->GetPreferred(charsetName, charsetName); + nsCAutoString charsetName; + res = calias->GetPreferred(aCharset, charsetName); if(NS_FAILED(res) && (kCharsetUninitialized == mCharsetSource) ) { diff --git a/mozilla/htmlparser/src/nsScanner.h b/mozilla/htmlparser/src/nsScanner.h index 571f63eaf6a..ab5b2e672cd 100644 --- a/mozilla/htmlparser/src/nsScanner.h +++ b/mozilla/htmlparser/src/nsScanner.h @@ -95,7 +95,7 @@ class nsScanner { * @param aMode represents the parser mode (nav, other) * @return */ - nsScanner(const nsAString& anHTMLString, const nsString& aCharset, PRInt32 aSource); + nsScanner(const nsAString& anHTMLString, const nsACString& aCharset, PRInt32 aSource); /** * Use this constructor if you want i/o to be based on @@ -107,7 +107,7 @@ class nsScanner { * @param aMode represents the parser mode (nav, other) * @return */ - nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& aCharset, PRInt32 aSource); + nsScanner(nsString& aFilename,PRBool aCreateStream, const nsACString& aCharset, PRInt32 aSource); /** * Use this constructor if you want i/o to be stream based. @@ -118,7 +118,7 @@ class nsScanner { * @param aMode represents the parser mode (nav, other) * @return */ - nsScanner(const nsAString& aFilename, nsIInputStream* aStream, const nsString& aCharset, PRInt32 aSource); + nsScanner(const nsAString& aFilename, nsIInputStream* aStream, const nsACString& aCharset, PRInt32 aSource); ~nsScanner(); @@ -346,7 +346,7 @@ class nsScanner { * @param aCharsetSource- where the charset info came from * @return */ - nsresult SetDocumentCharset(const nsAString& aCharset, PRInt32 aSource); + nsresult SetDocumentCharset(const nsACString& aCharset, PRInt32 aSource); void BindSubstring(nsSlidingSubstring& aSubstring, const nsReadingIterator& aStart, const nsReadingIterator& aEnd); void CurrentPosition(nsReadingIterator& aPosition); diff --git a/mozilla/intl/chardet/public/nsICharsetDetectionAdaptor.h b/mozilla/intl/chardet/public/nsICharsetDetectionAdaptor.h index 7f91be7407e..2201ac31615 100644 --- a/mozilla/intl/chardet/public/nsICharsetDetectionAdaptor.h +++ b/mozilla/intl/chardet/public/nsICharsetDetectionAdaptor.h @@ -65,6 +65,6 @@ public: */ NS_IMETHOD Init(nsIWebShellServices* aWebShell, nsICharsetDetector *aDetector, nsIDocument* aDocument, nsIParser* aParser, - const PRUnichar* aCharset, const char* aCommand=nsnull) = 0; + const char* aCharset, const char* aCommand=nsnull) = 0; }; #endif /* nsICDETAdaptor_h__ */ diff --git a/mozilla/intl/chardet/public/nsIDocCharset.idl b/mozilla/intl/chardet/public/nsIDocCharset.idl index de19c72fc11..691fdbfd67c 100755 --- a/mozilla/intl/chardet/public/nsIDocCharset.idl +++ b/mozilla/intl/chardet/public/nsIDocCharset.idl @@ -80,7 +80,7 @@ interface nsIDocCharset : nsISupports * * A force also sets the fallback encoding for this frame. */ - attribute wstring charset; + attribute string charset; }; diff --git a/mozilla/intl/chardet/src/nsDetectionAdaptor.cpp b/mozilla/intl/chardet/src/nsDetectionAdaptor.cpp index c8a3f236d45..5b8f4d909e2 100644 --- a/mozilla/intl/chardet/src/nsDetectionAdaptor.cpp +++ b/mozilla/intl/chardet/src/nsDetectionAdaptor.cpp @@ -55,7 +55,7 @@ NS_IMETHODIMP nsMyObserver::Notify( nsresult rv = NS_OK; if(mWeakRefParser) { - nsAutoString existingCharset; + nsCAutoString existingCharset; PRInt32 existingSource; mWeakRefParser->GetDocumentCharset(existingCharset, existingSource); if (existingSource >= kCharsetFromAutoDetection) @@ -68,7 +68,7 @@ NS_IMETHODIMP nsMyObserver::Notify( rv = mWebShellSvc->StopDocumentLoad(); rv = mWebShellSvc->ReloadDocument(aCharset, kCharsetFromAutoDetection); } else { - nsAutoString newcharset; newcharset.AssignWithConversion(aCharset); + nsDependentCString newcharset(aCharset); if (mWeakRefParser) { mWeakRefParser->SetDocumentCharset(newcharset, kCharsetFromAutoDetection); nsCOMPtr contentSink = mWeakRefParser->GetContentSink(); @@ -85,7 +85,7 @@ NS_IMETHODIMP nsMyObserver::Notify( NS_IMETHODIMP nsMyObserver::Init( nsIWebShellServices* aWebShellSvc, nsIDocument* aDocument, nsIParser* aParser, - const PRUnichar* aCharset, + const char* aCharset, const char* aCommand) { if(aCommand) { @@ -126,7 +126,7 @@ NS_IMPL_ISUPPORTS2 (nsDetectionAdaptor, nsIParserFilter, nsICharsetDetectionAdap //-------------------------------------------------------------- NS_IMETHODIMP nsDetectionAdaptor::Init( nsIWebShellServices* aWebShellSvc, nsICharsetDetector *aDetector, - nsIDocument* aDocument, nsIParser* aParser, const PRUnichar* aCharset, + nsIDocument* aDocument, nsIParser* aParser, const char* aCharset, const char* aCommand) { if((nsnull != aWebShellSvc) && (nsnull != aDetector) && (nsnull != aCharset)) diff --git a/mozilla/intl/chardet/src/nsDetectionAdaptor.h b/mozilla/intl/chardet/src/nsDetectionAdaptor.h index 9aaae10d15f..fdd88f192d9 100644 --- a/mozilla/intl/chardet/src/nsDetectionAdaptor.h +++ b/mozilla/intl/chardet/src/nsDetectionAdaptor.h @@ -72,7 +72,7 @@ class nsMyObserver : public nsICharsetDetectionObserver NS_IMETHOD Init(nsIWebShellServices* aWebShellSvc, nsIDocument* aDocument, nsIParser* aParser, - const PRUnichar* aCharset, + const char* aCharset, const char* aCommand); // Methods to support nsICharsetDetectionObserver @@ -92,7 +92,7 @@ class nsMyObserver : public nsICharsetDetectionObserver //detector outlives parser, we might want to change weak reference here. nsIDocument* mWeakRefDocument; nsIParser* mWeakRefParser; - nsAutoString mCharset; + nsCAutoString mCharset; nsCAutoString mCommand; }; @@ -111,7 +111,7 @@ class nsDetectionAdaptor : NS_IMETHOD Init(nsIWebShellServices* aWebShellSvc, nsICharsetDetector *aDetector, nsIDocument* aDocument, nsIParser* aParser, - const PRUnichar* aCharset, + const char* aCharset, const char* aCommand=nsnull); // Methode to suppor nsIParserFilter diff --git a/mozilla/layout/base/nsDocumentViewer.cpp b/mozilla/layout/base/nsDocumentViewer.cpp index 4c96da25dda..069457d7fbd 100644 --- a/mozilla/layout/base/nsDocumentViewer.cpp +++ b/mozilla/layout/base/nsDocumentViewer.cpp @@ -447,18 +447,19 @@ protected: #endif // NS_DEBUG #endif // NS_PRINTING + /* character set member data */ + PRInt32 mHintCharsetSource; + nsCString mHintCharset; + nsCString mDefaultCharacterSet; + nsCString mForceCharacterSet; + nsCString mPrevDocCharacterSet; + // document management data // these items are specific to markup documents (html and xml) // may consider splitting these out into a subclass PRPackedBool mAllowPlugins; PRPackedBool mIsSticky; - /* character set member data */ - nsString mDefaultCharacterSet; - nsString mHintCharset; - PRInt32 mHintCharsetSource; - nsString mForceCharacterSet; - nsString mPrevDocCharacterSet; }; //------------------------------------------------------------------ @@ -2322,9 +2323,8 @@ NS_IMETHODIMP DocumentViewerImpl::GetTextZoom(float* aTextZoom) // XXX: SEMANTIC CHANGE! // returns a copy of the string. Caller is responsible for freeing result // using Recycle(aDefaultCharacterSet) -NS_IMETHODIMP DocumentViewerImpl::GetDefaultCharacterSet(PRUnichar** aDefaultCharacterSet) +NS_IMETHODIMP DocumentViewerImpl::GetDefaultCharacterSet(nsACString& aDefaultCharacterSet) { - NS_ENSURE_ARG_POINTER(aDefaultCharacterSet); NS_ENSURE_STATE(mContainer); if (mDefaultCharacterSet.IsEmpty()) @@ -2348,69 +2348,64 @@ NS_IMETHODIMP DocumentViewerImpl::GetDefaultCharacterSet(PRUnichar** aDefaultCha } if (!defCharset.IsEmpty()) - mDefaultCharacterSet.Assign(defCharset.get()); + CopyUCS2toASCII(defCharset, mDefaultCharacterSet); else - mDefaultCharacterSet.Assign(NS_LITERAL_STRING("ISO-8859-1")); + mDefaultCharacterSet.Assign(NS_LITERAL_CSTRING("ISO-8859-1")); } - *aDefaultCharacterSet = ToNewUnicode(mDefaultCharacterSet); + aDefaultCharacterSet = mDefaultCharacterSet; return NS_OK; } static void SetChildDefaultCharacterSet(nsIMarkupDocumentViewer* aChild, void* aClosure) { - aChild->SetDefaultCharacterSet((PRUnichar*) aClosure); + const nsACString* charset = NS_STATIC_CAST(nsACString*, aClosure); + aChild->SetDefaultCharacterSet(*charset); } -NS_IMETHODIMP DocumentViewerImpl::SetDefaultCharacterSet(const PRUnichar* aDefaultCharacterSet) +NS_IMETHODIMP +DocumentViewerImpl::SetDefaultCharacterSet(const nsACString& aDefaultCharacterSet) { mDefaultCharacterSet = aDefaultCharacterSet; // this does a copy of aDefaultCharacterSet // now set the default char set on all children of mContainer return CallChildren(SetChildDefaultCharacterSet, - (void*) aDefaultCharacterSet); + (void*) &aDefaultCharacterSet); } // XXX: SEMANTIC CHANGE! // returns a copy of the string. Caller is responsible for freeing result // using Recycle(aForceCharacterSet) -NS_IMETHODIMP DocumentViewerImpl::GetForceCharacterSet(PRUnichar** aForceCharacterSet) +NS_IMETHODIMP DocumentViewerImpl::GetForceCharacterSet(nsACString& aForceCharacterSet) { - NS_ENSURE_ARG_POINTER(aForceCharacterSet); - - nsAutoString emptyStr; - if (mForceCharacterSet.Equals(emptyStr)) { - *aForceCharacterSet = nsnull; - } - else { - *aForceCharacterSet = ToNewUnicode(mForceCharacterSet); - } + aForceCharacterSet = mForceCharacterSet; return NS_OK; } static void SetChildForceCharacterSet(nsIMarkupDocumentViewer* aChild, void* aClosure) { - aChild->SetForceCharacterSet((PRUnichar*) aClosure); + const nsACString* charset = NS_STATIC_CAST(nsACString*, aClosure); + aChild->SetForceCharacterSet(*charset); } -NS_IMETHODIMP DocumentViewerImpl::SetForceCharacterSet(const PRUnichar* aForceCharacterSet) +NS_IMETHODIMP +DocumentViewerImpl::SetForceCharacterSet(const nsACString& aForceCharacterSet) { mForceCharacterSet = aForceCharacterSet; // now set the force char set on all children of mContainer - return CallChildren(SetChildForceCharacterSet, (void*) aForceCharacterSet); + return CallChildren(SetChildForceCharacterSet, (void*) &aForceCharacterSet); } // XXX: SEMANTIC CHANGE! // returns a copy of the string. Caller is responsible for freeing result // using Recycle(aHintCharacterSet) -NS_IMETHODIMP DocumentViewerImpl::GetHintCharacterSet(PRUnichar * *aHintCharacterSet) +NS_IMETHODIMP DocumentViewerImpl::GetHintCharacterSet(nsACString& aHintCharacterSet) { - NS_ENSURE_ARG_POINTER(aHintCharacterSet); if(kCharsetUninitialized == mHintCharsetSource) { - *aHintCharacterSet = nsnull; + aHintCharacterSet.Truncate(); } else { - *aHintCharacterSet = ToNewUnicode(mHintCharset); + aHintCharacterSet = mHintCharset; // this can't possibly be right. we can't set a value just because somebody got a related value! //mHintCharsetSource = kCharsetUninitialized; } @@ -2426,11 +2421,9 @@ NS_IMETHODIMP DocumentViewerImpl::GetHintCharacterSetSource(PRInt32 *aHintCharac } -NS_IMETHODIMP DocumentViewerImpl::GetPrevDocCharacterSet(PRUnichar * *aPrevDocCharacterSet) +NS_IMETHODIMP DocumentViewerImpl::GetPrevDocCharacterSet(nsACString& aPrevDocCharacterSet) { - NS_ENSURE_ARG_POINTER(aPrevDocCharacterSet); - - *aPrevDocCharacterSet = ToNewUnicode(mPrevDocCharacterSet); + aPrevDocCharacterSet = mPrevDocCharacterSet; return NS_OK; } @@ -2438,15 +2431,17 @@ NS_IMETHODIMP DocumentViewerImpl::GetPrevDocCharacterSet(PRUnichar * *aPrevDocCh static void SetChildPrevDocCharacterSet(nsIMarkupDocumentViewer* aChild, void* aClosure) { - aChild->SetPrevDocCharacterSet((PRUnichar*) aClosure); + const nsACString* charset = NS_STATIC_CAST(nsACString*, aClosure); + aChild->SetPrevDocCharacterSet(*charset); } -NS_IMETHODIMP DocumentViewerImpl::SetPrevDocCharacterSet(const PRUnichar* aPrevDocCharacterSet) +NS_IMETHODIMP +DocumentViewerImpl::SetPrevDocCharacterSet(const nsACString& aPrevDocCharacterSet) { mPrevDocCharacterSet = aPrevDocCharacterSet; return CallChildren(SetChildPrevDocCharacterSet, - (void*) aPrevDocCharacterSet); + (void*) &aPrevDocCharacterSet); } @@ -2456,7 +2451,8 @@ SetChildHintCharacterSetSource(nsIMarkupDocumentViewer* aChild, void* aClosure) aChild->SetHintCharacterSetSource(NS_PTR_TO_INT32(aClosure)); } -NS_IMETHODIMP DocumentViewerImpl::SetHintCharacterSetSource(PRInt32 aHintCharacterSetSource) +NS_IMETHODIMP +DocumentViewerImpl::SetHintCharacterSetSource(PRInt32 aHintCharacterSetSource) { mHintCharsetSource = aHintCharacterSetSource; // now set the hint char set source on all children of mContainer @@ -2467,14 +2463,16 @@ NS_IMETHODIMP DocumentViewerImpl::SetHintCharacterSetSource(PRInt32 aHintCharact static void SetChildHintCharacterSet(nsIMarkupDocumentViewer* aChild, void* aClosure) { - aChild->SetHintCharacterSet((PRUnichar*) aClosure); + const nsACString* charset = NS_STATIC_CAST(nsACString*, aClosure); + aChild->SetHintCharacterSet(*charset); } -NS_IMETHODIMP DocumentViewerImpl::SetHintCharacterSet(const PRUnichar* aHintCharacterSet) +NS_IMETHODIMP +DocumentViewerImpl::SetHintCharacterSet(const nsACString& aHintCharacterSet) { mHintCharset = aHintCharacterSet; // now set the hint char set on all children of mContainer - return CallChildren(SetChildHintCharacterSet, (void*) aHintCharacterSet); + return CallChildren(SetChildHintCharacterSet, (void*) &aHintCharacterSet); } static void diff --git a/mozilla/layout/base/nsPresContext.cpp b/mozilla/layout/base/nsPresContext.cpp index 804dc7d747a..0579fda8ab8 100644 --- a/mozilla/layout/base/nsPresContext.cpp +++ b/mozilla/layout/base/nsPresContext.cpp @@ -109,7 +109,7 @@ nsPresContext::PrefChangedCallback(const char* aPrefName, void* instance_data) #ifdef IBMBIDI PRBool -IsVisualCharset(const nsAutoString& aCharset) +IsVisualCharset(const nsCAutoString& aCharset) { if (aCharset.EqualsIgnoreCase("ibm864") // Arabic//ahmed || aCharset.EqualsIgnoreCase("ibm862") // Hebrew @@ -683,7 +683,7 @@ nsPresContext::SetShell(nsIPresShell* aShell) } if (mLangService) { - nsAutoString charset; + nsCAutoString charset; doc->AddCharSetObserver(this); doc->GetDocumentCharacterSet(charset); UpdateCharSet(charset.get()); @@ -704,10 +704,10 @@ nsPresContext::GetShell(nsIPresShell** aResult) } void -nsPresContext::UpdateCharSet(const PRUnichar* aCharSet) +nsPresContext::UpdateCharSet(const char* aCharSet) { if (mLangService) { - mLangService->LookupCharSet(NS_LossyConvertUCS2toASCII(aCharSet).get(), + mLangService->LookupCharSet(aCharSet, getter_AddRefs(mLanguage)); GetFontPreferences(); if (mLanguage) { @@ -742,7 +742,7 @@ nsPresContext::Observe(nsISupports* aSubject, const PRUnichar* aData) { if (!nsCRT::strcmp(aTopic, "charset")) { - UpdateCharSet(aData); + UpdateCharSet(NS_LossyConvertUCS2toASCII(aData).get()); if (mDeviceContext) { mDeviceContext->FlushFontCache(); ClearStyleDataAndReflow(); @@ -1641,7 +1641,7 @@ nsPresContext::GetIsBidiSystem(PRBool& aResult) const } NS_IMETHODIMP -nsPresContext::GetBidiCharset(nsAString &aCharSet) const +nsPresContext::GetBidiCharset(nsACString &aCharSet) const { aCharSet = mCharset; return NS_OK; diff --git a/mozilla/layout/base/nsPresContext.h b/mozilla/layout/base/nsPresContext.h index 173bbae1400..2dc59717724 100644 --- a/mozilla/layout/base/nsPresContext.h +++ b/mozilla/layout/base/nsPresContext.h @@ -503,7 +503,7 @@ public: /** * Get the document charset */ - NS_IMETHOD GetBidiCharset(nsAString &aCharSet) const = 0; + NS_IMETHOD GetBidiCharset(nsACString &aCharSet) const = 0; #endif // IBMBIDI diff --git a/mozilla/layout/base/public/nsIPresContext.h b/mozilla/layout/base/public/nsIPresContext.h index 173bbae1400..2dc59717724 100644 --- a/mozilla/layout/base/public/nsIPresContext.h +++ b/mozilla/layout/base/public/nsIPresContext.h @@ -503,7 +503,7 @@ public: /** * Get the document charset */ - NS_IMETHOD GetBidiCharset(nsAString &aCharSet) const = 0; + NS_IMETHOD GetBidiCharset(nsACString &aCharSet) const = 0; #endif // IBMBIDI diff --git a/mozilla/layout/base/public/nsPresContext.h b/mozilla/layout/base/public/nsPresContext.h index 173bbae1400..2dc59717724 100644 --- a/mozilla/layout/base/public/nsPresContext.h +++ b/mozilla/layout/base/public/nsPresContext.h @@ -503,7 +503,7 @@ public: /** * Get the document charset */ - NS_IMETHOD GetBidiCharset(nsAString &aCharSet) const = 0; + NS_IMETHOD GetBidiCharset(nsACString &aCharSet) const = 0; #endif // IBMBIDI diff --git a/mozilla/layout/base/src/nsCopySupport.cpp b/mozilla/layout/base/src/nsCopySupport.cpp index 428eaf7774f..389f607510f 100644 --- a/mozilla/layout/base/src/nsCopySupport.cpp +++ b/mozilla/layout/base/src/nsCopySupport.cpp @@ -178,7 +178,7 @@ nsresult nsCopySupport::HTMLCopy(nsISelection *aSel, nsIDocument *aDoc, PRInt16 } //Mohamed else { - nsAutoString bidiCharset; + nsCAutoString bidiCharset; context->GetBidiCharset(bidiCharset); if (bidiCharset.EqualsIgnoreCase("UTF-8") || (!isVisual)) { if ( (GET_BIDI_OPTION_CLIPBOARDTEXTMODE(bidiOptions) == IBMBIDI_CLIPBOARDTEXTMODE_VISUAL) || (!isBidiSystem) ) { diff --git a/mozilla/layout/base/src/nsPresContext.cpp b/mozilla/layout/base/src/nsPresContext.cpp index 804dc7d747a..0579fda8ab8 100644 --- a/mozilla/layout/base/src/nsPresContext.cpp +++ b/mozilla/layout/base/src/nsPresContext.cpp @@ -109,7 +109,7 @@ nsPresContext::PrefChangedCallback(const char* aPrefName, void* instance_data) #ifdef IBMBIDI PRBool -IsVisualCharset(const nsAutoString& aCharset) +IsVisualCharset(const nsCAutoString& aCharset) { if (aCharset.EqualsIgnoreCase("ibm864") // Arabic//ahmed || aCharset.EqualsIgnoreCase("ibm862") // Hebrew @@ -683,7 +683,7 @@ nsPresContext::SetShell(nsIPresShell* aShell) } if (mLangService) { - nsAutoString charset; + nsCAutoString charset; doc->AddCharSetObserver(this); doc->GetDocumentCharacterSet(charset); UpdateCharSet(charset.get()); @@ -704,10 +704,10 @@ nsPresContext::GetShell(nsIPresShell** aResult) } void -nsPresContext::UpdateCharSet(const PRUnichar* aCharSet) +nsPresContext::UpdateCharSet(const char* aCharSet) { if (mLangService) { - mLangService->LookupCharSet(NS_LossyConvertUCS2toASCII(aCharSet).get(), + mLangService->LookupCharSet(aCharSet, getter_AddRefs(mLanguage)); GetFontPreferences(); if (mLanguage) { @@ -742,7 +742,7 @@ nsPresContext::Observe(nsISupports* aSubject, const PRUnichar* aData) { if (!nsCRT::strcmp(aTopic, "charset")) { - UpdateCharSet(aData); + UpdateCharSet(NS_LossyConvertUCS2toASCII(aData).get()); if (mDeviceContext) { mDeviceContext->FlushFontCache(); ClearStyleDataAndReflow(); @@ -1641,7 +1641,7 @@ nsPresContext::GetIsBidiSystem(PRBool& aResult) const } NS_IMETHODIMP -nsPresContext::GetBidiCharset(nsAString &aCharSet) const +nsPresContext::GetBidiCharset(nsACString &aCharSet) const { aCharSet = mCharset; return NS_OK; diff --git a/mozilla/layout/base/src/nsPresContext.h b/mozilla/layout/base/src/nsPresContext.h index a8bea31fb25..11c97ad6e61 100644 --- a/mozilla/layout/base/src/nsPresContext.h +++ b/mozilla/layout/base/src/nsPresContext.h @@ -192,7 +192,7 @@ public: //Mohamed 17-1-01 NS_IMETHOD SetIsBidiSystem(PRBool aIsBidi); NS_IMETHOD GetIsBidiSystem(PRBool &aResult) const; - NS_IMETHOD GetBidiCharset(nsAString &aCharSet) const; + NS_IMETHOD GetBidiCharset(nsACString &aCharSet) const; //Mohamed End #endif // IBMBIDI @@ -276,7 +276,7 @@ protected: #ifdef IBMBIDI nsBidiPresUtils* mBidiUtils; PRUint32 mBidi; - nsAutoString mCharset; // the charset we are using + nsCAutoString mCharset; // the charset we are using #endif // IBMBIDI #ifdef DEBUG @@ -292,7 +292,7 @@ protected: void GetUserPreferences(); void GetFontPreferences(); void GetDocumentColorPreferences(); - void UpdateCharSet(const PRUnichar* aCharSet); + void UpdateCharSet(const char* aCharSet); void SetImgAnimations(nsCOMPtr& aParent, PRUint16 aMode); private: diff --git a/mozilla/layout/forms/nsIsIndexFrame.cpp b/mozilla/layout/forms/nsIsIndexFrame.cpp index 76c7d359e72..9451da9c073 100644 --- a/mozilla/layout/forms/nsIsIndexFrame.cpp +++ b/mozilla/layout/forms/nsIsIndexFrame.cpp @@ -466,10 +466,10 @@ nsIsIndexFrame::OnSubmit(nsIPresContext* aPresContext) nsCOMPtr actionURL; nsXPIDLCString scheme; PRBool isJSURL = PR_FALSE; - nsAutoString docCharset; + nsCAutoString docCharset; document->GetDocumentCharacterSet(docCharset); if (NS_SUCCEEDED(result = NS_NewURI(getter_AddRefs(actionURL), href, - NS_LossyConvertUCS2toASCII(docCharset).get(), + docCharset.get(), docURL))) { result = actionURL->SchemeIs("javascript", &isJSURL); } @@ -486,7 +486,7 @@ nsIsIndexFrame::OnSubmit(nsIPresContext* aPresContext) } nsCOMPtr uri; result = NS_NewURI(getter_AddRefs(uri), href, - NS_LossyConvertUCS2toASCII(docCharset).get(), docURL); + docCharset.get(), docURL); if (NS_FAILED(result)) return result; // Now pass on absolute url to the click handler @@ -510,9 +510,7 @@ void nsIsIndexFrame::GetSubmitCharset(nsCString& oCharset) nsCOMPtr doc; mContent->GetDocument(getter_AddRefs(doc)); if (doc) { - nsAutoString docCharset; - doc->GetDocumentCharacterSet(docCharset); - CopyUCS2toASCII(docCharset, oCharset); + doc->GetDocumentCharacterSet(oCharset); } } diff --git a/mozilla/layout/generic/nsImageFrame.cpp b/mozilla/layout/generic/nsImageFrame.cpp index b865cb8d31a..790fb65d9db 100644 --- a/mozilla/layout/generic/nsImageFrame.cpp +++ b/mozilla/layout/generic/nsImageFrame.cpp @@ -1708,13 +1708,13 @@ nsImageFrame::HandleEvent(nsIPresContext* aPresContext, NS_ASSERTION(nodeInfo, "Image content without a nodeinfo?"); nsCOMPtr doc; nodeInfo->GetDocument(getter_AddRefs(doc)); - nsAutoString charset; + nsCAutoString charset; if (doc) { doc->GetDocumentCharacterSet(charset); } nsCOMPtr uri; nsresult rv = NS_NewURI(getter_AddRefs(uri), src, - NS_LossyConvertUCS2toASCII(charset).get(), + charset.get(), baseURL); NS_ENSURE_SUCCESS(rv, rv); @@ -1895,7 +1895,7 @@ nsImageFrame::LoadIcon(const nsAString& aSpec, } void -nsImageFrame::GetDocumentCharacterSet(nsAString& aCharset) const +nsImageFrame::GetDocumentCharacterSet(nsACString& aCharset) const { nsresult rv; nsCOMPtr htmlContent(do_QueryInterface(mContent, &rv)); @@ -1913,10 +1913,10 @@ nsImageFrame::SpecToURI(const nsAString& aSpec, nsIIOService *aIOService, { nsCOMPtr baseURI; GetBaseURI(getter_AddRefs(baseURI)); - nsAutoString charset; + nsCAutoString charset; GetDocumentCharacterSet(charset); NS_NewURI(aURI, aSpec, - charset.IsEmpty() ? nsnull : NS_ConvertUCS2toUTF8(charset).get(), + charset.IsEmpty() ? nsnull : charset.get(), baseURI, aIOService); } diff --git a/mozilla/layout/generic/nsImageFrame.h b/mozilla/layout/generic/nsImageFrame.h index d5edf7b8929..0113a1438ee 100644 --- a/mozilla/layout/generic/nsImageFrame.h +++ b/mozilla/layout/generic/nsImageFrame.h @@ -204,7 +204,7 @@ private: inline void GetLoadGroup(nsIPresContext *aPresContext, nsILoadGroup **aLoadGroup); nscoord GetContinuationOffset(nscoord* aWidth = 0) const; - void GetDocumentCharacterSet(nsAString& aCharset) const; + void GetDocumentCharacterSet(nsACString& aCharset) const; /** * This function will recalculate mTransform. If a non-null image diff --git a/mozilla/layout/generic/nsObjectFrame.cpp b/mozilla/layout/generic/nsObjectFrame.cpp index 6e1047db586..dc7ca83b022 100644 --- a/mozilla/layout/generic/nsObjectFrame.cpp +++ b/mozilla/layout/generic/nsObjectFrame.cpp @@ -979,11 +979,11 @@ nsObjectFrame::MakeAbsoluteURL(nsIURI* *aFullURI, aSrc.Trim(" \n\r\t\b", PR_TRUE, PR_TRUE, PR_FALSE); // get document charset - nsAutoString originCharset; + nsCAutoString originCharset; if (document && NS_FAILED(document->GetDocumentCharacterSet(originCharset))) originCharset.Truncate(); - return NS_NewURI(aFullURI, aSrc, NS_LossyConvertUCS2toASCII(originCharset).get(), + return NS_NewURI(aFullURI, aSrc, originCharset.get(), aBaseURI, nsHTMLUtils::IOService); } @@ -2736,7 +2736,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get document"); if (NS_FAILED(rv)) return rv; - nsString charset; + nsCAutoString charset; rv = doc->GetDocumentCharacterSet(charset); NS_ASSERTION(NS_SUCCEEDED(rv), "can't get charset"); if (NS_FAILED(rv)) return rv; @@ -2744,11 +2744,11 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) if (charset.IsEmpty()) return NS_OK; // common charsets and those not requiring conversion first - if (charset == NS_LITERAL_STRING("us-acsii")) { + if (charset == NS_LITERAL_CSTRING("us-acsii")) { *result = PL_strdup("US_ASCII"); - } else if (charset == NS_LITERAL_STRING("ISO-8859-1") || - !nsCRT::strncmp(charset.get(), NS_LITERAL_STRING("UTF").get(), 3)) { - *result = ToNewUTF8String(charset); + } else if (charset == NS_LITERAL_CSTRING("ISO-8859-1") || + !nsCRT::strncmp(charset.get(), "UTF", 3)) { + *result = ToNewCString(charset); } else { if (!gCharsetMap) { gCharsetMap = new nsHashtable(sizeof(charsets)/sizeof(moz2javaCharset)); @@ -2759,10 +2759,10 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) gCharsetMap->Put(&key, (void *)(charsets[i].javaName)); } } - nsCStringKey mozKey(NS_LossyConvertUCS2toASCII(charset).get()); + nsCStringKey mozKey(charset); // if found mapping, return it; otherwise return original charset char *mapping = (char *)gCharsetMap->Get(&mozKey); - *result = mapping ? PL_strdup(mapping) : ToNewUTF8String(charset); + *result = mapping ? PL_strdup(mapping) : ToNewCString(charset); } return (*result) ? NS_OK : NS_ERROR_OUT_OF_MEMORY; diff --git a/mozilla/layout/html/base/src/nsImageFrame.cpp b/mozilla/layout/html/base/src/nsImageFrame.cpp index b865cb8d31a..790fb65d9db 100644 --- a/mozilla/layout/html/base/src/nsImageFrame.cpp +++ b/mozilla/layout/html/base/src/nsImageFrame.cpp @@ -1708,13 +1708,13 @@ nsImageFrame::HandleEvent(nsIPresContext* aPresContext, NS_ASSERTION(nodeInfo, "Image content without a nodeinfo?"); nsCOMPtr doc; nodeInfo->GetDocument(getter_AddRefs(doc)); - nsAutoString charset; + nsCAutoString charset; if (doc) { doc->GetDocumentCharacterSet(charset); } nsCOMPtr uri; nsresult rv = NS_NewURI(getter_AddRefs(uri), src, - NS_LossyConvertUCS2toASCII(charset).get(), + charset.get(), baseURL); NS_ENSURE_SUCCESS(rv, rv); @@ -1895,7 +1895,7 @@ nsImageFrame::LoadIcon(const nsAString& aSpec, } void -nsImageFrame::GetDocumentCharacterSet(nsAString& aCharset) const +nsImageFrame::GetDocumentCharacterSet(nsACString& aCharset) const { nsresult rv; nsCOMPtr htmlContent(do_QueryInterface(mContent, &rv)); @@ -1913,10 +1913,10 @@ nsImageFrame::SpecToURI(const nsAString& aSpec, nsIIOService *aIOService, { nsCOMPtr baseURI; GetBaseURI(getter_AddRefs(baseURI)); - nsAutoString charset; + nsCAutoString charset; GetDocumentCharacterSet(charset); NS_NewURI(aURI, aSpec, - charset.IsEmpty() ? nsnull : NS_ConvertUCS2toUTF8(charset).get(), + charset.IsEmpty() ? nsnull : charset.get(), baseURI, aIOService); } diff --git a/mozilla/layout/html/base/src/nsImageFrame.h b/mozilla/layout/html/base/src/nsImageFrame.h index d5edf7b8929..0113a1438ee 100644 --- a/mozilla/layout/html/base/src/nsImageFrame.h +++ b/mozilla/layout/html/base/src/nsImageFrame.h @@ -204,7 +204,7 @@ private: inline void GetLoadGroup(nsIPresContext *aPresContext, nsILoadGroup **aLoadGroup); nscoord GetContinuationOffset(nscoord* aWidth = 0) const; - void GetDocumentCharacterSet(nsAString& aCharset) const; + void GetDocumentCharacterSet(nsACString& aCharset) const; /** * This function will recalculate mTransform. If a non-null image diff --git a/mozilla/layout/html/base/src/nsObjectFrame.cpp b/mozilla/layout/html/base/src/nsObjectFrame.cpp index 6e1047db586..dc7ca83b022 100644 --- a/mozilla/layout/html/base/src/nsObjectFrame.cpp +++ b/mozilla/layout/html/base/src/nsObjectFrame.cpp @@ -979,11 +979,11 @@ nsObjectFrame::MakeAbsoluteURL(nsIURI* *aFullURI, aSrc.Trim(" \n\r\t\b", PR_TRUE, PR_TRUE, PR_FALSE); // get document charset - nsAutoString originCharset; + nsCAutoString originCharset; if (document && NS_FAILED(document->GetDocumentCharacterSet(originCharset))) originCharset.Truncate(); - return NS_NewURI(aFullURI, aSrc, NS_LossyConvertUCS2toASCII(originCharset).get(), + return NS_NewURI(aFullURI, aSrc, originCharset.get(), aBaseURI, nsHTMLUtils::IOService); } @@ -2736,7 +2736,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get document"); if (NS_FAILED(rv)) return rv; - nsString charset; + nsCAutoString charset; rv = doc->GetDocumentCharacterSet(charset); NS_ASSERTION(NS_SUCCEEDED(rv), "can't get charset"); if (NS_FAILED(rv)) return rv; @@ -2744,11 +2744,11 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) if (charset.IsEmpty()) return NS_OK; // common charsets and those not requiring conversion first - if (charset == NS_LITERAL_STRING("us-acsii")) { + if (charset == NS_LITERAL_CSTRING("us-acsii")) { *result = PL_strdup("US_ASCII"); - } else if (charset == NS_LITERAL_STRING("ISO-8859-1") || - !nsCRT::strncmp(charset.get(), NS_LITERAL_STRING("UTF").get(), 3)) { - *result = ToNewUTF8String(charset); + } else if (charset == NS_LITERAL_CSTRING("ISO-8859-1") || + !nsCRT::strncmp(charset.get(), "UTF", 3)) { + *result = ToNewCString(charset); } else { if (!gCharsetMap) { gCharsetMap = new nsHashtable(sizeof(charsets)/sizeof(moz2javaCharset)); @@ -2759,10 +2759,10 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) gCharsetMap->Put(&key, (void *)(charsets[i].javaName)); } } - nsCStringKey mozKey(NS_LossyConvertUCS2toASCII(charset).get()); + nsCStringKey mozKey(charset); // if found mapping, return it; otherwise return original charset char *mapping = (char *)gCharsetMap->Get(&mozKey); - *result = mapping ? PL_strdup(mapping) : ToNewUTF8String(charset); + *result = mapping ? PL_strdup(mapping) : ToNewCString(charset); } return (*result) ? NS_OK : NS_ERROR_OUT_OF_MEMORY; diff --git a/mozilla/layout/html/forms/src/nsIsIndexFrame.cpp b/mozilla/layout/html/forms/src/nsIsIndexFrame.cpp index 76c7d359e72..9451da9c073 100644 --- a/mozilla/layout/html/forms/src/nsIsIndexFrame.cpp +++ b/mozilla/layout/html/forms/src/nsIsIndexFrame.cpp @@ -466,10 +466,10 @@ nsIsIndexFrame::OnSubmit(nsIPresContext* aPresContext) nsCOMPtr actionURL; nsXPIDLCString scheme; PRBool isJSURL = PR_FALSE; - nsAutoString docCharset; + nsCAutoString docCharset; document->GetDocumentCharacterSet(docCharset); if (NS_SUCCEEDED(result = NS_NewURI(getter_AddRefs(actionURL), href, - NS_LossyConvertUCS2toASCII(docCharset).get(), + docCharset.get(), docURL))) { result = actionURL->SchemeIs("javascript", &isJSURL); } @@ -486,7 +486,7 @@ nsIsIndexFrame::OnSubmit(nsIPresContext* aPresContext) } nsCOMPtr uri; result = NS_NewURI(getter_AddRefs(uri), href, - NS_LossyConvertUCS2toASCII(docCharset).get(), docURL); + docCharset.get(), docURL); if (NS_FAILED(result)) return result; // Now pass on absolute url to the click handler @@ -510,9 +510,7 @@ void nsIsIndexFrame::GetSubmitCharset(nsCString& oCharset) nsCOMPtr doc; mContent->GetDocument(getter_AddRefs(doc)); if (doc) { - nsAutoString docCharset; - doc->GetDocumentCharacterSet(docCharset); - CopyUCS2toASCII(docCharset, oCharset); + doc->GetDocumentCharacterSet(oCharset); } } diff --git a/mozilla/layout/style/nsCSSLoader.cpp b/mozilla/layout/style/nsCSSLoader.cpp index a2655ea385c..9aabceb4cb7 100644 --- a/mozilla/layout/style/nsCSSLoader.cpp +++ b/mozilla/layout/style/nsCSSLoader.cpp @@ -633,9 +633,7 @@ SheetLoadData::OnDetermineCharset(nsIUnicharStreamLoader* aLoader, if (NS_FAILED(result) && mLoader->mDocument) { // no useful data on charset. Try the document charset. // That needs no resolution, since it's already fully resolved - nsAutoString docCharset; - mLoader->mDocument->GetDocumentCharacterSet(docCharset); - CopyUCS2toASCII(docCharset, charset); + mLoader->mDocument->GetDocumentCharacterSet(charset); #ifdef DEBUG_bzbarsky fprintf(stderr, "Set from document: %s\n", charset.get()); diff --git a/mozilla/mailnews/base/public/nsIMessenger.idl b/mozilla/mailnews/base/public/nsIMessenger.idl index 3da06c70013..ac1a24cfaa0 100644 --- a/mozilla/mailnews/base/public/nsIMessenger.idl +++ b/mozilla/mailnews/base/public/nsIMessenger.idl @@ -55,7 +55,7 @@ interface nsIMessenger : nsISupports { const long eMoveMsg = 2; const long eCopyMsg = 3; - void setDisplayCharset(in wstring aCharset); + void setDisplayCharset(in string aCharset); readonly attribute nsITransactionManager transactionManager; diff --git a/mozilla/mailnews/base/src/nsMessenger.cpp b/mozilla/mailnews/base/src/nsMessenger.cpp index 95976fe87e2..10accffb20f 100644 --- a/mozilla/mailnews/base/src/nsMessenger.cpp +++ b/mozilla/mailnews/base/src/nsMessenger.cpp @@ -408,7 +408,7 @@ nsMessenger::SetWindow(nsIDOMWindowInternal *aWin, nsIMsgWindow *aMsgWindow) return NS_OK; } -NS_IMETHODIMP nsMessenger::SetDisplayCharset(const PRUnichar * aCharset) +NS_IMETHODIMP nsMessenger::SetDisplayCharset(const char * aCharset) { if (mCurrentDisplayCharset.Equals(aCharset)) return NS_OK; @@ -422,7 +422,7 @@ NS_IMETHODIMP nsMessenger::SetDisplayCharset(const PRUnichar * aCharset) { nsCOMPtr muDV = do_QueryInterface(cv); if (muDV) { - muDV->SetForceCharacterSet(aCharset); + muDV->SetForceCharacterSet(nsDependentCString(aCharset)); } @@ -555,7 +555,7 @@ nsMessenger::OpenURL(const char *aURL) NS_ENSURE_ARG_POINTER(aURL); // This is to setup the display DocShell as UTF-8 capable... - SetDisplayCharset(NS_LITERAL_STRING("UTF-8").get()); + SetDisplayCharset("UTF-8"); char *unescapedUrl = PL_strdup(aURL); if (!unescapedUrl) @@ -594,7 +594,7 @@ nsMessenger::LoadURL(nsIDOMWindowInternal *aWin, const char *aURL) { NS_ENSURE_ARG_POINTER(aURL); - SetDisplayCharset(NS_LITERAL_STRING("UTF-8").get()); + SetDisplayCharset("UTF-8"); nsAutoString uriString(NS_ConvertASCIItoUCS2(aURL).get()); // Cleanup the empty spaces that might be on each end. diff --git a/mozilla/mailnews/base/src/nsMessenger.h b/mozilla/mailnews/base/src/nsMessenger.h index ca182329a16..8d4bf806a1b 100644 --- a/mozilla/mailnews/base/src/nsMessenger.h +++ b/mozilla/mailnews/base/src/nsMessenger.h @@ -93,7 +93,7 @@ private: // String bundles... nsCOMPtr mStringBundle; - nsString mCurrentDisplayCharset; + nsCString mCurrentDisplayCharset; nsCOMPtr mSearchContext; nsCString mLastDisplayURI; // this used when the user attempts to force a charset reload of a message...we need to get the last displayed diff --git a/mozilla/mailnews/base/src/nsMsgPrintEngine.cpp b/mozilla/mailnews/base/src/nsMsgPrintEngine.cpp index 97aefe73560..8c8b7737835 100644 --- a/mozilla/mailnews/base/src/nsMsgPrintEngine.cpp +++ b/mozilla/mailnews/base/src/nsMsgPrintEngine.cpp @@ -571,7 +571,6 @@ nsMsgPrintEngine::InitializeDisplayCharset() // libmime always converts to UTF-8 (both HTML and XML) if (mDocShell) { - nsAutoString aForceCharacterSet(NS_LITERAL_STRING("UTF-8")); nsCOMPtr cv; mDocShell->GetContentViewer(getter_AddRefs(cv)); if (cv) @@ -579,7 +578,7 @@ nsMsgPrintEngine::InitializeDisplayCharset() nsCOMPtr muDV = do_QueryInterface(cv); if (muDV) { - muDV->SetForceCharacterSet(aForceCharacterSet.get()); + muDV->SetForceCharacterSet(NS_LITERAL_CSTRING("UTF-8")); } } } diff --git a/mozilla/mailnews/compose/src/nsMsgCompose.cpp b/mozilla/mailnews/compose/src/nsMsgCompose.cpp index a21c55c93fc..8c024acc4ae 100644 --- a/mozilla/mailnews/compose/src/nsMsgCompose.cpp +++ b/mozilla/mailnews/compose/src/nsMsgCompose.cpp @@ -751,7 +751,7 @@ nsresult nsMsgCompose::SetDocumentCharset(const char *charset) m_compFields->SetCharacterSet(charset); // notify the change to editor - m_editor->SetDocumentCharacterSet(NS_ConvertASCIItoUCS2(charset)); + m_editor->SetDocumentCharacterSet(nsDependentCString(charset)); return NS_OK; } @@ -1257,9 +1257,7 @@ NS_IMETHODIMP nsMsgCompose::InitEditor(nsIEditor* aEditor, nsIDOMWindow* aConten m_editor = aEditor; // Set the charset - nsAutoString msgCharSet; - msgCharSet.AssignWithConversion(m_compFields->GetCharacterSet()); - + const nsDependentCString msgCharSet(m_compFields->GetCharacterSet()); m_editor->SetDocumentCharacterSet(msgCharSet); nsCOMPtr globalObj = do_QueryInterface(m_window); @@ -1274,8 +1272,8 @@ NS_IMETHODIMP nsMsgCompose::InitEditor(nsIEditor* aEditor, nsIDOMWindow* aConten { nsCOMPtr markupCV = do_QueryInterface(childCV); if (markupCV) { - NS_ENSURE_SUCCESS(markupCV->SetDefaultCharacterSet(msgCharSet.get()), NS_ERROR_FAILURE); - NS_ENSURE_SUCCESS(markupCV->SetForceCharacterSet(msgCharSet.get()), NS_ERROR_FAILURE); + NS_ENSURE_SUCCESS(markupCV->SetDefaultCharacterSet(msgCharSet), NS_ERROR_FAILURE); + NS_ENSURE_SUCCESS(markupCV->SetForceCharacterSet(msgCharSet), NS_ERROR_FAILURE); } } diff --git a/mozilla/parser/htmlparser/public/nsIContentSink.h b/mozilla/parser/htmlparser/public/nsIContentSink.h index d56686eea27..6fead0ec8ec 100644 --- a/mozilla/parser/htmlparser/public/nsIContentSink.h +++ b/mozilla/parser/htmlparser/public/nsIContentSink.h @@ -121,7 +121,7 @@ public: * Set the document character set. This should be passed on to the * document itself. */ - NS_IMETHOD SetDocumentCharset(nsAString& aCharset)=0; + NS_IMETHOD SetDocumentCharset(nsACString& aCharset)=0; }; #endif /* nsIContentSink_h___ */ diff --git a/mozilla/parser/htmlparser/public/nsIParser.h b/mozilla/parser/htmlparser/public/nsIParser.h index 8c8f33617b7..9d683094e00 100644 --- a/mozilla/parser/htmlparser/public/nsIParser.h +++ b/mozilla/parser/htmlparser/public/nsIParser.h @@ -188,8 +188,8 @@ class nsIParser : public nsISupports { * @param aCharsetSource- the soure of the chares * @return nada */ - NS_IMETHOD_(void) SetDocumentCharset(const nsAString& aCharset, PRInt32 aSource)=0; - NS_IMETHOD_(void) GetDocumentCharset(nsAString& oCharset, PRInt32& oSource)=0; + NS_IMETHOD_(void) SetDocumentCharset(const nsACString& aCharset, PRInt32 aSource)=0; + NS_IMETHOD_(void) GetDocumentCharset(nsACString& oCharset, PRInt32& oSource)=0; NS_IMETHOD_(void) SetParserFilter(nsIParserFilter* aFilter) = 0; diff --git a/mozilla/parser/htmlparser/robot/nsRobotSink.cpp b/mozilla/parser/htmlparser/robot/nsRobotSink.cpp index 7c555e62198..7e8b9221109 100644 --- a/mozilla/parser/htmlparser/robot/nsRobotSink.cpp +++ b/mozilla/parser/htmlparser/robot/nsRobotSink.cpp @@ -106,7 +106,7 @@ public: NS_IMETHOD WillResume(void) { return NS_OK; } NS_IMETHOD SetParser(nsIParser* aParser) { return NS_OK; } NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset) { return NS_OK; } + NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; } NS_IMETHOD WillProcessTokens(void) { return NS_OK; } NS_IMETHOD DidProcessTokens(void) { return NS_OK; } NS_IMETHOD WillProcessAToken(void) { return NS_OK; } diff --git a/mozilla/parser/htmlparser/src/nsDTDUtils.cpp b/mozilla/parser/htmlparser/src/nsDTDUtils.cpp index c0adb60fa69..3adb451f424 100644 --- a/mozilla/parser/htmlparser/src/nsDTDUtils.cpp +++ b/mozilla/parser/htmlparser/src/nsDTDUtils.cpp @@ -1574,9 +1574,10 @@ nsObserverEntry::Notify(nsIParserNode* aNode, if (theTag <= NS_HTML_TAG_MAX) { nsVoidArray* theObservers = mObservers[theTag]; if (theObservers) { - nsAutoString theCharsetValue; PRInt32 theCharsetSource; - aParser->GetDocumentCharset(theCharsetValue,theCharsetSource); + nsCAutoString charset; + aParser->GetDocumentCharset(charset,theCharsetSource); + NS_ConvertASCIItoUCS2 theCharsetValue(charset); PRInt32 theAttrCount = aNode->GetAttributeCount(); PRInt32 theObserversCount = theObservers->Count(); diff --git a/mozilla/parser/htmlparser/src/nsLoggingSink.h b/mozilla/parser/htmlparser/src/nsLoggingSink.h index 236c6e57fdf..1c77753920c 100644 --- a/mozilla/parser/htmlparser/src/nsLoggingSink.h +++ b/mozilla/parser/htmlparser/src/nsLoggingSink.h @@ -74,7 +74,7 @@ public: NS_IMETHOD AddProcessingInstruction(const nsIParserNode& aNode); NS_IMETHOD AddDocTypeDecl(const nsIParserNode& aNode); NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset) { return NS_OK; } + NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; } NS_IMETHOD NotifyTagObservers(nsIParserNode* aNode) { return NS_OK; } // nsIHTMLContentSink diff --git a/mozilla/parser/htmlparser/src/nsParser.cpp b/mozilla/parser/htmlparser/src/nsParser.cpp index 61e7a7279bc..793f9b78ac7 100644 --- a/mozilla/parser/htmlparser/src/nsParser.cpp +++ b/mozilla/parser/htmlparser/src/nsParser.cpp @@ -305,7 +305,7 @@ nsParser::nsParser() { } #endif - mCharset.Assign(NS_LITERAL_STRING("ISO-8859-1")); + mCharset.Assign(NS_LITERAL_CSTRING("ISO-8859-1")); mParserContext=0; mStreamStatus=0; mCharsetSource=kCharsetUninitialized; @@ -487,7 +487,7 @@ NS_IMETHODIMP_(void) nsParser::SetCommand(eParserCommands aParserCommand) * @return nada */ NS_IMETHODIMP_(void) -nsParser::SetDocumentCharset(const nsAString& aCharset, PRInt32 aCharsetSource) +nsParser::SetDocumentCharset(const nsACString& aCharset, PRInt32 aCharsetSource) { mCharset = aCharset; mCharsetSource = aCharsetSource; @@ -495,7 +495,7 @@ nsParser::SetDocumentCharset(const nsAString& aCharset, PRInt32 aCharsetSource) mParserContext->mScanner->SetDocumentCharset(aCharset, aCharsetSource); } -void nsParser::SetSinkCharset(nsAString& aCharset) +void nsParser::SetSinkCharset(nsACString& aCharset) { if (mSink) { mSink->SetDocumentCharset(aCharset); @@ -1998,7 +1998,7 @@ static inline PRBool IsSecondMarker(unsigned char aChar) } } -static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsString& oCharset, PRInt32& oCharsetSource) { +static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsCString& oCharset, PRInt32& oCharsetSource) { oCharsetSource= kCharsetFromAutoDetection; oCharset.Truncate(); // See http://www.w3.org/TR/2000/REC-xml-20001006#sec-guessing @@ -2013,26 +2013,26 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS // 00 00 if((0xFE==aBytes[2]) && (0xFF==aBytes[3])) { // 00 00 FE FF UCS-4, big-endian machine (1234 order) - oCharset.AssignWithConversion(UCS4_BE); + oCharset.Assign(UCS4_BE); } else if((0x00==aBytes[2]) && (0x3C==aBytes[3])) { // 00 00 00 3C UCS-4, big-endian machine (1234 order) - oCharset.AssignWithConversion(UCS4_BE); + oCharset.Assign(UCS4_BE); } else if((0xFF==aBytes[2]) && (0xFE==aBytes[3])) { // 00 00 FF FE UCS-4, unusual octet order (2143) - oCharset.AssignWithConversion(UCS4_2143); + oCharset.Assign(UCS4_2143); } else if((0x3C==aBytes[2]) && (0x00==aBytes[3])) { // 00 00 3C 00 UCS-4, unusual octet order (2143) - oCharset.AssignWithConversion(UCS4_2143); + oCharset.Assign(UCS4_2143); } oCharsetSource = kCharsetFromByteOrderMark; } else if((0x3C==aBytes[1]) && (0x00==aBytes[2])) { // 00 3C 00 if(IsSecondMarker(aBytes[3])) { // 00 3C 00 SM UTF-16, big-endian, no Byte Order Mark - oCharset.AssignWithConversion(UTF16_BE); + oCharset.Assign(UTF16_BE); } else if((0x00==aBytes[3])) { // 00 3C 00 00 UCS-4, unusual octet order (3412) - oCharset.AssignWithConversion(UCS4_3412); + oCharset.Assign(UCS4_3412); } oCharsetSource = kCharsetFromByteOrderMark; } @@ -2042,10 +2042,10 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS // 3C 00 XX 00 if(IsSecondMarker(aBytes[2])) { // 3C 00 SM 00 UTF-16, little-endian, no Byte Order Mark - oCharset.AssignWithConversion(UTF16_LE); + oCharset.Assign(UTF16_LE); } else if((0x00==aBytes[2])) { // 3C 00 00 00 UCS-4, little-endian machine (4321 order) - oCharset.AssignWithConversion(UCS4_LE); + oCharset.Assign(UCS4_LE); } oCharsetSource = kCharsetFromByteOrderMark; // For html, meta tag detector is invoked before this so that we have @@ -2115,7 +2115,7 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS // encoding value is invalid if it is UTF-16 if (count > 0 && (0 != PL_strcmp("UTF-16", (char*)(aBytes+encStart)))) { - oCharset.AssignWithConversion((char*)(aBytes+encStart),count); + oCharset.Assign((char*)(aBytes+encStart),count); oCharsetSource = kCharsetFromMetaTag; } encodingFound = PR_TRUE; @@ -2135,7 +2135,7 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS if((0xBB==aBytes[1]) && (0xBF==aBytes[2])) { // EF BB BF // Win2K UTF-8 BOM - oCharset.AssignWithConversion(UTF8); + oCharset.Assign(UTF8); oCharsetSource= kCharsetFromByteOrderMark; } break; @@ -2143,10 +2143,10 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS if(0xFF==aBytes[1]) { if(0x00==aBytes[2] && 0x00==aBytes[3]) { // FE FF 00 00 UCS-4, unusual octet order (3412) - oCharset.AssignWithConversion(UCS4_3412); + oCharset.Assign(UCS4_3412); } else { // FE FF UTF-16, big-endian - oCharset.AssignWithConversion(UTF16_BE); + oCharset.Assign(UTF16_BE); } oCharsetSource= kCharsetFromByteOrderMark; } @@ -2155,11 +2155,11 @@ static PRBool DetectByteOrderMark(const unsigned char* aBytes, PRInt32 aLen, nsS if(0xFE==aBytes[1]) { if(0x00==aBytes[2] && 0x00==aBytes[3]) // FF FE 00 00 UTF-32, little-endian - oCharset.AssignWithConversion(UCS4_LE); + oCharset.Assign(UCS4_LE); else // FF FE // UTF-16, little-endian - oCharset.AssignWithConversion(UTF16_LE); + oCharset.Assign(UTF16_LE); oCharsetSource= kCharsetFromByteOrderMark; } break; @@ -2181,7 +2181,7 @@ inline const char GetNextChar(nsACString::const_iterator& aStart, PRBool nsParser::DetectMetaTag(const char* aBytes, PRInt32 aLen, - nsString& aCharset, + nsCString& aCharset, PRInt32& aCharsetSource) { aCharsetSource= kCharsetFromMetaTag; @@ -2280,7 +2280,7 @@ nsParser::DetectMetaTag(const char* aBytes, // return true if we successfully got something for charset if (currPos != tokEnd) { - aCharset.Assign(NS_ConvertASCIItoUCS2(currPos.get(), tokEnd.get() - currPos.get())); + aCharset.Assign(currPos.get(), tokEnd.get() - currPos.get()); return PR_TRUE; } @@ -2324,7 +2324,7 @@ ParserWriteFunc(nsIInputStream* in, if(pws->mNeedCharsetCheck) { PRInt32 guessSource; - nsAutoString guess; + nsCAutoString guess; nsCAutoString preferred; pws->mNeedCharsetCheck = PR_FALSE; @@ -2334,7 +2334,7 @@ ParserWriteFunc(nsIInputStream* in, DetectByteOrderMark((const unsigned char*)buf, theNumRead, guess, guessSource))) { nsCOMPtr alias(do_GetService(NS_CHARSETALIAS_CONTRACTID)); - result = alias->GetPreferred(NS_LossyConvertUCS2toASCII(guess), preferred); + result = alias->GetPreferred(guess, preferred); // Only continue if it's a recognized charset and not // one of a designated set that we ignore. if (NS_SUCCEEDED(result) && @@ -2344,9 +2344,9 @@ ParserWriteFunc(nsIInputStream* in, !preferred.Equals(NS_LITERAL_CSTRING("UTF-16LE")) && !preferred.Equals(NS_LITERAL_CSTRING("UTF-32BE")) && !preferred.Equals(NS_LITERAL_CSTRING("UTF-32LE"))))) { - guess.Assign(NS_ConvertASCIItoUCS2(preferred)); + guess = preferred; pws->mParser->SetDocumentCharset(guess, guessSource); - pws->mParser->SetSinkCharset(guess); + pws->mParser->SetSinkCharset(preferred); nsCOMPtr channel(do_QueryInterface(pws->mRequest)); if (channel) { nsCOMPtr cacheToken; @@ -2358,7 +2358,7 @@ ParserWriteFunc(nsIInputStream* in, nsresult rv = #endif cacheDescriptor->SetMetaDataElement("charset", - NS_ConvertUCS2toUTF8(guess).get()); + guess.get()); NS_ASSERTION(NS_SUCCEEDED(rv),"cannot SetMetaDataElement"); } } diff --git a/mozilla/parser/htmlparser/src/nsParser.h b/mozilla/parser/htmlparser/src/nsParser.h index 49c71c30a23..e1676ae776b 100644 --- a/mozilla/parser/htmlparser/src/nsParser.h +++ b/mozilla/parser/htmlparser/src/nsParser.h @@ -160,9 +160,9 @@ class nsParser : public nsIParser, * @param aCharsetSource- the source of the charset * @return nada */ - NS_IMETHOD_(void) SetDocumentCharset(const nsAString& aCharset, PRInt32 aSource); + NS_IMETHOD_(void) SetDocumentCharset(const nsACString& aCharset, PRInt32 aSource); - NS_IMETHOD_(void) GetDocumentCharset(nsAString& aCharset, PRInt32& aSource) + NS_IMETHOD_(void) GetDocumentCharset(nsACString& aCharset, PRInt32& aSource) { aCharset = mCharset; aSource = mCharsetSource; @@ -330,10 +330,10 @@ class nsParser : public nsIParser, */ PRBool DetectMetaTag(const char* aBytes, PRInt32 aLen, - nsString& oCharset, + nsCString& oCharset, PRInt32& oCharsetSource); - void SetSinkCharset(nsAString& aCharset); + void SetSinkCharset(nsACString& aCharset); /** * Removes continue parsing events @@ -453,7 +453,7 @@ protected: PRUint16 mFlags; nsString mUnusedInput; - nsString mCharset; + nsCString mCharset; nsString mCommandStr; diff --git a/mozilla/parser/htmlparser/src/nsScanner.cpp b/mozilla/parser/htmlparser/src/nsScanner.cpp index 153dd8942d2..615283bff97 100644 --- a/mozilla/parser/htmlparser/src/nsScanner.cpp +++ b/mozilla/parser/htmlparser/src/nsScanner.cpp @@ -108,7 +108,7 @@ MOZ_DECL_CTOR_COUNTER(nsScanner) * @param aMode represents the parser mode (nav, other) * @return */ -nsScanner::nsScanner(const nsAString& anHTMLString, const nsString& aCharset, PRInt32 aSource) +nsScanner::nsScanner(const nsAString& anHTMLString, const nsACString& aCharset, PRInt32 aSource) { MOZ_COUNT_CTOR(nsScanner); @@ -134,7 +134,7 @@ nsScanner::nsScanner(const nsAString& anHTMLString, const nsString& aCharset, PR * @param aFilename -- * @return */ -nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& aCharset, PRInt32 aSource) : +nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsACString& aCharset, PRInt32 aSource) : mFilename(aFilename) { MOZ_COUNT_CTOR(nsScanner); @@ -173,7 +173,7 @@ nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& a * @param aFilename -- * @return */ -nsScanner::nsScanner(const nsAString& aFilename,nsIInputStream* aStream,const nsString& aCharset, PRInt32 aSource) : +nsScanner::nsScanner(const nsAString& aFilename,nsIInputStream* aStream,const nsACString& aCharset, PRInt32 aSource) : mFilename(aFilename) { MOZ_COUNT_CTOR(nsScanner); @@ -195,7 +195,7 @@ nsScanner::nsScanner(const nsAString& aFilename,nsIInputStream* aStream,const ns } -nsresult nsScanner::SetDocumentCharset(const nsAString& aCharset , PRInt32 aSource) { +nsresult nsScanner::SetDocumentCharset(const nsACString& aCharset , PRInt32 aSource) { nsresult res = NS_OK; @@ -204,17 +204,17 @@ nsresult nsScanner::SetDocumentCharset(const nsAString& aCharset , PRInt32 aSour nsCOMPtr calias(do_GetService(kCharsetAliasCID, &res)); NS_ASSERTION( nsnull != calias, "cannot find charset alias"); - nsCAutoString charsetName = NS_LossyConvertUCS2toASCII(aCharset); if( NS_SUCCEEDED(res) && (nsnull != calias)) { PRBool same = PR_FALSE; - res = calias->Equals(charsetName, mCharset, &same); + res = calias->Equals(aCharset, mCharset, &same); if(NS_SUCCEEDED(res) && same) { return NS_OK; // no difference, don't change it } // different, need to change it - res = calias->GetPreferred(charsetName, charsetName); + nsCAutoString charsetName; + res = calias->GetPreferred(aCharset, charsetName); if(NS_FAILED(res) && (kCharsetUninitialized == mCharsetSource) ) { diff --git a/mozilla/parser/htmlparser/src/nsScanner.h b/mozilla/parser/htmlparser/src/nsScanner.h index 571f63eaf6a..ab5b2e672cd 100644 --- a/mozilla/parser/htmlparser/src/nsScanner.h +++ b/mozilla/parser/htmlparser/src/nsScanner.h @@ -95,7 +95,7 @@ class nsScanner { * @param aMode represents the parser mode (nav, other) * @return */ - nsScanner(const nsAString& anHTMLString, const nsString& aCharset, PRInt32 aSource); + nsScanner(const nsAString& anHTMLString, const nsACString& aCharset, PRInt32 aSource); /** * Use this constructor if you want i/o to be based on @@ -107,7 +107,7 @@ class nsScanner { * @param aMode represents the parser mode (nav, other) * @return */ - nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& aCharset, PRInt32 aSource); + nsScanner(nsString& aFilename,PRBool aCreateStream, const nsACString& aCharset, PRInt32 aSource); /** * Use this constructor if you want i/o to be stream based. @@ -118,7 +118,7 @@ class nsScanner { * @param aMode represents the parser mode (nav, other) * @return */ - nsScanner(const nsAString& aFilename, nsIInputStream* aStream, const nsString& aCharset, PRInt32 aSource); + nsScanner(const nsAString& aFilename, nsIInputStream* aStream, const nsACString& aCharset, PRInt32 aSource); ~nsScanner(); @@ -346,7 +346,7 @@ class nsScanner { * @param aCharsetSource- where the charset info came from * @return */ - nsresult SetDocumentCharset(const nsAString& aCharset, PRInt32 aSource); + nsresult SetDocumentCharset(const nsACString& aCharset, PRInt32 aSource); void BindSubstring(nsSlidingSubstring& aSubstring, const nsReadingIterator& aStart, const nsReadingIterator& aEnd); void CurrentPosition(nsReadingIterator& aPosition); diff --git a/mozilla/rdf/base/src/nsRDFContentSink.cpp b/mozilla/rdf/base/src/nsRDFContentSink.cpp index 542c09e2743..f8109e45a94 100644 --- a/mozilla/rdf/base/src/nsRDFContentSink.cpp +++ b/mozilla/rdf/base/src/nsRDFContentSink.cpp @@ -163,7 +163,7 @@ public: NS_IMETHOD WillResume(void); NS_IMETHOD SetParser(nsIParser* aParser); NS_IMETHOD FlushPendingNotifications() { return NS_OK; } - NS_IMETHOD SetDocumentCharset(nsAString& aCharset) { return NS_OK; } + NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; } // nsIRDFContentSink NS_IMETHOD Init(nsIURI* aURL); diff --git a/mozilla/rdf/base/src/nsRDFXMLParser.cpp b/mozilla/rdf/base/src/nsRDFXMLParser.cpp index 89f1c4642b8..dbfcf241543 100644 --- a/mozilla/rdf/base/src/nsRDFXMLParser.cpp +++ b/mozilla/rdf/base/src/nsRDFXMLParser.cpp @@ -79,7 +79,7 @@ nsRDFXMLParser::ParseAsync(nsIRDFDataSource* aSink, nsIURI* aBaseURI, nsIStreamL nsCOMPtr parser = do_CreateInstance(kParserCID, &rv); if (NS_FAILED(rv)) return rv; - parser->SetDocumentCharset(NS_LITERAL_STRING("UTF-8"), + parser->SetDocumentCharset(NS_LITERAL_CSTRING("UTF-8"), kCharsetFromDocTypeDefault); parser->SetContentSink(sink); @@ -110,7 +110,7 @@ nsRDFXMLParser::ParseString(nsIRDFDataSource* aSink, nsIURI* aBaseURI, const nsA nsCOMPtr parser = do_CreateInstance(kParserCID, &rv); if (NS_FAILED(rv)) return rv; - parser->SetDocumentCharset(NS_LITERAL_STRING("UTF-8"), + parser->SetDocumentCharset(NS_LITERAL_CSTRING("UTF-8"), kCharsetFromDocTypeDefault); parser->SetContentSink(sink);