From fbeea434b68ffe0b11286b26e0426ba51ee62fb7 Mon Sep 17 00:00:00 2001 From: "scc%netscape.com" Date: Mon, 3 Apr 2000 08:04:52 +0000 Subject: [PATCH] making string conversions explicit --- htmlparser/robot/nsDebugRobot.cpp | 10 +-- htmlparser/robot/nsRobotSink.cpp | 6 +- htmlparser/src/CNavDTD.cpp | 24 +++--- htmlparser/src/COtherDTD.cpp | 20 ++--- htmlparser/src/CParserContext.cpp | 15 ++-- htmlparser/src/CRtfDTD.cpp | 16 ++-- htmlparser/src/nsDTDUtils.cpp | 14 ++-- htmlparser/src/nsExpatDTD.cpp | 10 +-- htmlparser/src/nsExpatTokenizer.cpp | 51 +++++------ htmlparser/src/nsHTMLContentSinkStream.cpp | 38 +++++---- htmlparser/src/nsHTMLEntities.cpp | 6 +- htmlparser/src/nsHTMLNullSink.cpp | 2 +- htmlparser/src/nsHTMLToTXTSinkStream.cpp | 65 +++++++------- htmlparser/src/nsHTMLToTXTSinkStream.h | 2 +- htmlparser/src/nsHTMLTokenizer.cpp | 8 +- htmlparser/src/nsHTMLTokens.cpp | 84 ++++++++++--------- parser/htmlparser/robot/nsDebugRobot.cpp | 10 +-- parser/htmlparser/robot/nsRobotSink.cpp | 6 +- parser/htmlparser/src/CNavDTD.cpp | 24 +++--- parser/htmlparser/src/COtherDTD.cpp | 20 ++--- parser/htmlparser/src/CParserContext.cpp | 15 ++-- parser/htmlparser/src/CRtfDTD.cpp | 16 ++-- parser/htmlparser/src/nsDTDUtils.cpp | 14 ++-- parser/htmlparser/src/nsExpatDTD.cpp | 10 +-- parser/htmlparser/src/nsExpatTokenizer.cpp | 51 +++++------ .../src/nsHTMLContentSinkStream.cpp | 38 +++++---- parser/htmlparser/src/nsHTMLEntities.cpp | 6 +- parser/htmlparser/src/nsHTMLNullSink.cpp | 2 +- .../htmlparser/src/nsHTMLToTXTSinkStream.cpp | 65 +++++++------- parser/htmlparser/src/nsHTMLToTXTSinkStream.h | 2 +- parser/htmlparser/src/nsHTMLTokenizer.cpp | 8 +- parser/htmlparser/src/nsHTMLTokens.cpp | 84 ++++++++++--------- 32 files changed, 374 insertions(+), 368 deletions(-) diff --git a/htmlparser/robot/nsDebugRobot.cpp b/htmlparser/robot/nsDebugRobot.cpp index 1ec79852215e..94d622cb8109 100644 --- a/htmlparser/robot/nsDebugRobot.cpp +++ b/htmlparser/robot/nsDebugRobot.cpp @@ -79,15 +79,15 @@ NS_IMETHODIMP RobotSinkObserver::ProcessLink(const nsString& aURLSpec) // Geez this is ugly. temporary hack to only process html files str.Truncate(); nsString(aURLSpec).Right(str,1); - if (!str.Equals("/")) + if (!str.EqualsWithConversion("/")) { str.Truncate(); nsString(aURLSpec).Right(str,4); - if (!str.Equals("html")) + if (!str.EqualsWithConversion("html")) { str.Truncate(); nsString(aURLSpec).Right(str,3); - if (!str.Equals("htm")) + if (!str.EqualsWithConversion("htm")) return NS_OK; } } @@ -108,7 +108,7 @@ NS_IMETHODIMP RobotSinkObserver::ProcessLink(const nsString& aURLSpec) g_duplicateList->AppendElement(new nsString(aURLSpec)); str.Truncate(); nsString(aURLSpec).Left(str,5); - if (str.Equals("http:")) { + if (str.EqualsWithConversion("http:")) { g_iProcessed++; if (g_iProcessed == (g_iMaxProcess > 0 ? g_iMaxProcess-1 : 0)) g_bHitTop = PR_TRUE; @@ -328,7 +328,7 @@ extern "C" NS_EXPORT int DebugRobot( } char* spec; (void)url->GetSpec(&spec); - nsAutoString theSpec(spec); + nsAutoString theSpec; theSpec.AssignWithConversion(spec); nsCRT::free(spec); nsCOMPtr webNav(do_QueryInterface(docShell)); webNav->LoadURI(theSpec.GetUnicode());/* XXX hook up stream listener here! */ diff --git a/htmlparser/robot/nsRobotSink.cpp b/htmlparser/robot/nsRobotSink.cpp index b717f6fed4a4..777609affe47 100644 --- a/htmlparser/robot/nsRobotSink.cpp +++ b/htmlparser/robot/nsRobotSink.cpp @@ -219,7 +219,7 @@ NS_IMETHODIMP RobotSink::OpenContainer(const nsIParserNode& aNode) { nsAutoString tmp(aNode.GetText()); tmp.ToLowerCase(); - if (tmp.Equals("a")) { + if (tmp.EqualsWithConversion("a")) { nsAutoString k, v; PRInt32 ac = aNode.GetAttributeCount(); for (PRInt32 i = 0; i < ac; i++) { @@ -228,7 +228,7 @@ NS_IMETHODIMP RobotSink::OpenContainer(const nsIParserNode& aNode) k.Truncate(); k.Append(key); k.ToLowerCase(); - if (k.Equals("href")) { + if (k.EqualsWithConversion("href")) { // Get value and remove mandatory quotes v.Truncate(); v.Append(aNode.GetValueAt(i)); @@ -363,7 +363,7 @@ void RobotSink::ProcessLink(const nsString& aLink) absURLSpec.Truncate(); char* str; absurl->GetSpec(&str); - absURLSpec = str; + absURLSpec.AssignWithConversion(str); nsCRT::free(str); } } diff --git a/htmlparser/src/CNavDTD.cpp b/htmlparser/src/CNavDTD.cpp index b2e2a5191f36..88dc292738dd 100644 --- a/htmlparser/src/CNavDTD.cpp +++ b/htmlparser/src/CNavDTD.cpp @@ -134,9 +134,7 @@ NS_IMPL_RELEASE(CNavDTD) CNavDTD::CNavDTD() : nsIDTD(), mMisplacedContent(0), mSkippedContent(0), - mSharedNodes(0), - mScratch(""), - mMimeType("") { + mSharedNodes(0) { NS_INIT_REFCNT(); mSink = 0; mParser=0; @@ -373,18 +371,18 @@ eAutoDetectResult CNavDTD::CanParse(CParserContext& aParserContext,nsString& aBu if(eViewSource==aParserContext.mParserCommand) { - if(PR_TRUE==aParserContext.mMimeType.Equals(kPlainTextContentType)) { + if(PR_TRUE==aParserContext.mMimeType.EqualsWithConversion(kPlainTextContentType)) { result=ePrimaryDetect; } - else if(aParserContext.mMimeType.Equals(kRTFTextContentType)){ + else if(aParserContext.mMimeType.EqualsWithConversion(kRTFTextContentType)){ result=ePrimaryDetect; } } else { - if(PR_TRUE==aParserContext.mMimeType.Equals(kHTMLTextContentType)) { + if(PR_TRUE==aParserContext.mMimeType.EqualsWithConversion(kHTMLTextContentType)) { result=ePrimaryDetect; } - else if(PR_TRUE==aParserContext.mMimeType.Equals(kPlainTextContentType)) { + else if(PR_TRUE==aParserContext.mMimeType.EqualsWithConversion(kPlainTextContentType)) { result=ePrimaryDetect; } else { @@ -393,7 +391,7 @@ eAutoDetectResult CNavDTD::CanParse(CParserContext& aParserContext,nsString& aBu if(BufferContainsHTML(aBuffer,theBufHasXML)){ result = eValidDetect ; if(0==aParserContext.mMimeType.Length()) { - aParserContext.SetMimeType(kHTMLTextContentType); + aParserContext.SetMimeType(NS_ConvertToString(kHTMLTextContentType)); result = (theBufHasXML) ? eValidDetect : ePrimaryDetect; } } @@ -482,7 +480,7 @@ nsresult CNavDTD::BuildModel(nsIParser* aParser,nsITokenizer* aTokenizer,nsIToke if(!mBodyContext->GetCount()) { //if the content model is empty, then begin by opening ... - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_html,"html"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_html,NS_ConvertToString("html")); HandleStartToken(theToken); //this token should get pushed on the context stack, don't recycle it. if(ePlainText==mDocType) { @@ -540,7 +538,7 @@ nsresult CNavDTD::DidBuildModel(nsresult anErrorCode,PRBool aNotifySink,nsIParse mSkipTarget=eHTMLTag_unknown; //clear this in case we were searching earlier. - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,"body"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,NS_ConvertToString("body")); mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack, don't recycle it result=BuildModel(aParser,mTokenizer,0,aSink); } @@ -726,7 +724,7 @@ nsresult CNavDTD::HandleToken(CToken* aToken,nsIParser* aParser){ mMisplacedContent.Push(aToken); aToken->mUseCount++; if(mParseMode==eParseMode_quirks && (gHTMLElements[theTag].HasSpecialProperty(kRequiresBody))) { - CToken* theBodyToken=(CToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,"body"); + CToken* theBodyToken=(CToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,NS_ConvertToString("body")); result=HandleToken(theBodyToken,aParser); } return result; @@ -1131,7 +1129,7 @@ nsresult CNavDTD::WillHandleStartTag(CToken* aToken,eHTMLTags aTag,nsCParserNode CParserContext* pc=mParser->PeekContext(); void* theDocID=(pc)? pc->mKey:0; - result=theService->Notify(aTag,aNode,(PRUint32)theDocID,kHTMLTextContentType,mParser); + result=theService->Notify(aTag,aNode,(PRUint32)theDocID, NS_ConvertToString(kHTMLTextContentType), mParser); } } @@ -2129,7 +2127,7 @@ NS_IMETHODIMP CNavDTD::StringTagToIntTag(nsString &aTag, PRInt32* aIntTag) const } NS_IMETHODIMP CNavDTD::IntTagToStringTag(PRInt32 aIntTag, nsString& aTag) const { - aTag = nsHTMLTags::GetStringValue((nsHTMLTag)aIntTag); + aTag.AssignWithConversion(nsHTMLTags::GetStringValue((nsHTMLTag)aIntTag)); return NS_OK; } diff --git a/htmlparser/src/COtherDTD.cpp b/htmlparser/src/COtherDTD.cpp index fb1c1e148761..b6c4b8f2fa52 100644 --- a/htmlparser/src/COtherDTD.cpp +++ b/htmlparser/src/COtherDTD.cpp @@ -107,7 +107,7 @@ class CTagFinder: public nsDequeFunctor{ public: CTagFinder(){} - void Initialize(const nsString &aTagName) {mTagName = aTagName;} + void Initialize(const nsString &aTagName) {mTagName.Assign(aTagName);} virtual ~CTagFinder() { } @@ -220,7 +220,7 @@ NS_IMPL_RELEASE(COtherDTD) * @param * @return */ -COtherDTD::COtherDTD() : nsIDTD(), mMisplacedContent(0), mSkippedContent(0), mSharedNodes(0), mScratch("") { +COtherDTD::COtherDTD() : nsIDTD(), mMisplacedContent(0), mSkippedContent(0), mSharedNodes(0) { NS_INIT_REFCNT(); mSink = 0; mParser=0; @@ -471,7 +471,7 @@ eAutoDetectResult COtherDTD::CanParse(CParserContext& aParserContext,nsString& a if(eViewSource!=aParserContext.mParserCommand) { - if(PR_TRUE==(aParserContext.mMimeType.Equals(kHTMLTextContentType) || aParserContext.mMimeType.Equals(kPlainTextContentType))) { + if(PR_TRUE==(aParserContext.mMimeType.EqualsWithConversion(kHTMLTextContentType) || aParserContext.mMimeType.EqualsWithConversion(kPlainTextContentType))) { result=ePrimaryDetect; } else { @@ -480,7 +480,7 @@ eAutoDetectResult COtherDTD::CanParse(CParserContext& aParserContext,nsString& a if(BufferContainsHTML(aBuffer,theBufHasXML)){ result = eValidDetect ; if(0==aParserContext.mMimeType.Length()) { - aParserContext.SetMimeType(kHTMLTextContentType); + aParserContext.SetMimeType( NS_ConvertToString(kHTMLTextContentType) ); result = (theBufHasXML) ? eValidDetect : ePrimaryDetect; } } @@ -569,7 +569,7 @@ nsresult COtherDTD::BuildModel(nsIParser* aParser,nsITokenizer* aTokenizer,nsITo if(!mBodyContext->GetCount()) { //if the content model is empty, then begin by opening ... - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_html,"html"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_html, NS_ConvertToString("html")); HandleStartToken(theToken); //this token should get pushed on the context stack, don't recycle it. } @@ -623,11 +623,11 @@ nsresult COtherDTD::DidBuildModel(nsresult anErrorCode,PRBool aNotifySink,nsIPar mTokenizer->PrependTokens(mMisplacedContent); //push misplaced content if(ePlainText==mDocType) { - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_pre,"pre"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_pre, NS_ConvertToString("pre")); mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack, don't recycle it } - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,"body"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body, NS_ConvertToString("body")); mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack, don't recycle it result=BuildModel(aParser,mTokenizer,0,aSink); @@ -1204,7 +1204,7 @@ nsresult COtherDTD::WillHandleStartTag(CToken* aToken,eHTMLTags aTag,nsCParserNo CParserContext* pc=mParser->PeekContext(); void* theDocID=(pc)? pc->mKey:0; - result=theService->Notify(aTag,aNode,(PRUint32)theDocID,kHTMLTextContentType,mParser); + result=theService->Notify(aTag,aNode,(PRUint32)theDocID, NS_ConvertToString(kHTMLTextContentType), mParser); } } @@ -2075,7 +2075,7 @@ nsresult COtherDTD::CollectSkippedContent(nsCParserNode& aNode,PRInt32 &aCount) // the parser and into the form element code PRBool aMustConvertLinebreaks = PR_FALSE; - mScratch=""; + mScratch.SetLength(0); aNode.SetSkippedContent(mScratch); for(aIndex=0;aIndexparser = nsnull; mState->tokenDeque = nsnull; - nsAutoString buffer("UTF-16"); + nsAutoString buffer; buffer.AssignWithConversion("UTF-16"); const PRUnichar* encoding = buffer.GetUnicode(); if (encoding) { mExpatParser = XML_ParserCreate((const XML_Char*) encoding); @@ -267,7 +267,10 @@ void nsExpatTokenizer::GetLine(const char* aSourceBuffer, PRUint32 aLength, aLine.Truncate(0); if (startIndex == endIndex) { /* Special case if the error is on a line where the only character is a newline */ - aLine.Append(""); + // STRING USE WARNING: I have no idea what this is supposed to do; to me it looks like a no-op + // ... so I'm not going to delete it but I will fix it to conform to the new standard. + // aLine.Append(""); + aLine.AppendWithConversion(""); } else { NS_ASSERTION(endIndex - startIndex >= sizeof(PRUnichar), "?"); @@ -291,15 +294,15 @@ void nsExpatTokenizer::GetLine(const char* aSourceBuffer, PRUint32 aLength, static nsresult CreateErrorText(const nsParserError* aError, nsString& aErrorString) { - aErrorString = "XML Parsing Error: "; + aErrorString.AssignWithConversion("XML Parsing Error: "); if (aError) { aErrorString.Append(aError->description); - aErrorString.Append("\nLine Number "); - aErrorString.Append(aError->lineNumber, 10); - aErrorString.Append(", Column "); - aErrorString.Append(aError->colNumber, 10); - aErrorString.Append(":"); + aErrorString.AppendWithConversion("\nLine Number "); + aErrorString.AppendWithConversion(aError->lineNumber, 10); + aErrorString.AppendWithConversion(", Column "); + aErrorString.AppendWithConversion(aError->colNumber, 10); + aErrorString.AppendWithConversion(":"); } return NS_OK; @@ -311,10 +314,10 @@ CreateSourceText(const nsParserError* aError, nsString& aSourceString) PRInt32 errorPosition = aError->colNumber; aSourceString.Append(aError->sourceLine); - aSourceString.Append("\n"); + aSourceString.AppendWithConversion("\n"); for (int i = 0; i < errorPosition; i++) - aSourceString.Append("-"); - aSourceString.Append("^"); + aSourceString.AppendWithConversion("-"); + aSourceString.AppendWithConversion("^"); return NS_OK; } @@ -337,7 +340,7 @@ nsExpatTokenizer::AddErrorMessageTokens(nsParserError* aError) CAttributeToken* attrToken = (CAttributeToken*) mState->tokenRecycler->CreateTokenOfType(eToken_attribute, eHTMLTag_unknown); nsString& key = attrToken->GetKey(); - key.Assign("xmlns"); + key.AssignWithConversion("xmlns"); attrToken->SetStringValue(kHTMLNameSpaceURI); newToken->SetAttributeCount(1); newToken = (CToken*) attrToken; @@ -396,7 +399,7 @@ nsExpatTokenizer::PushXMLErrorTokens(const char *aBuffer, PRUint32 aLength, PRBo error->code = XML_GetErrorCode(mExpatParser); error->lineNumber = XML_GetCurrentLineNumber(mExpatParser); error->colNumber = XML_GetCurrentColumnNumber(mExpatParser); - error->description = XML_ErrorString(error->code); + error->description.AssignWithConversion(XML_ErrorString(error->code)); if (!aIsFinal) { PRInt32 byteIndexRelativeToFile = 0; byteIndexRelativeToFile = XML_GetCurrentByteIndex(mExpatParser); @@ -617,13 +620,13 @@ void nsExpatTokenizer::HandleProcessingInstruction(void *userData, CToken* theToken = state->tokenRecycler->CreateTokenOfType(eToken_instruction,eHTMLTag_unknown); if(theToken) { nsString& theString=theToken->GetStringValueXXX(); - theString. Append(""); + theString.AppendWithConversion("?>"); AddToken(theToken, NS_OK, state->tokenDeque, state->tokenRecycler); } else{ @@ -687,8 +690,8 @@ IsLoadableDTD(nsIURI** aDTD) res = dtdURL->GetFileName(&fileName); if (NS_SUCCEEDED(res) && nsnull != fileName) { nsSpecialSystemDirectory dtdPath(nsSpecialSystemDirectory::OS_CurrentProcessDirectory); - nsString path(kDTDDirectory); - path.Append(fileName); + nsString path; path.AssignWithConversion(kDTDDirectory); + path.AppendWithConversion(fileName); dtdPath += path; if (dtdPath.Exists()) { // The DTD was found in the local DTD directory. @@ -728,7 +731,7 @@ nsExpatTokenizer::OpenInputStream(const nsString& aURLStr, rv = NS_OpenURI(in, uri); char* absURL = nsnull; uri->GetSpec(&absURL); - aAbsURL->Append(absURL); + aAbsURL->AppendWithConversion(absURL); nsCRT::free(absURL); } else { @@ -747,7 +750,7 @@ nsresult nsExpatTokenizer::LoadStream(nsIInputStream* in, PRUint32 aCount = 1024, bufsize = aCount*sizeof(PRUnichar); nsIUnicharInputStream *uniIn = nsnull; - nsAutoString utf8("UTF-8"); + nsAutoString utf8; utf8.AssignWithConversion("UTF-8"); nsresult res = NS_NewConverterStream(&uniIn, nsnull, @@ -815,7 +818,7 @@ int nsExpatTokenizer::HandleExternalEntityRef(XML_Parser parser, // Pass the buffer to expat for parsing if (NS_SUCCEEDED(rv) && nsnull != uniBuf) { // Create a parser for parsing the external entity - nsAutoString encoding("UTF-16"); + nsAutoString encoding; encoding.AssignWithConversion("UTF-16"); XML_Parser entParser = nsnull; entParser = XML_ExternalEntityParserCreate(parser, 0, @@ -854,10 +857,10 @@ void nsExpatTokenizer::HandleStartDoctypeDecl(void *userData, CToken* token = state->tokenRecycler->CreateTokenOfType(eToken_doctypeDecl, eHTMLTag_unknown); if (token) { nsString& str = token->GetStringValueXXX(); - str.Append(kDocTypeDeclPrefix); - str.Append(" "); + str.AppendWithConversion(kDocTypeDeclPrefix); + str.AppendWithConversion(" "); str.Append((PRUnichar*) doctypeName); - str.Append(">"); + str.AppendWithConversion(">"); AddToken(token, NS_OK, state->tokenDeque, state->tokenRecycler); } } diff --git a/htmlparser/src/nsHTMLContentSinkStream.cpp b/htmlparser/src/nsHTMLContentSinkStream.cpp index 3ee154f932ef..7dc348a434ab 100644 --- a/htmlparser/src/nsHTMLContentSinkStream.cpp +++ b/htmlparser/src/nsHTMLContentSinkStream.cpp @@ -55,7 +55,7 @@ static char* gHeaderComment = " *********************************************************/ - aString=""; + temp.AssignWithConversion("->"); result=aScanner.ReadUntil(aString,temp,PR_FALSE); } } @@ -1043,8 +1043,10 @@ PRInt32 CNewlineToken::GetTokenType(void) { */ nsString& CNewlineToken::GetStringValueXXX(void) { static nsString* theStr=0; - if(!theStr) - theStr=new nsString("\n"); + if(!theStr) { + theStr=new nsString; + theStr->AssignWithConversion("\n"); + } return *theStr; } @@ -1059,7 +1061,7 @@ nsString& CNewlineToken::GetStringValueXXX(void) { nsresult CNewlineToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt32 aMode) { #if 1 - mTextValue=kNewLine; //This is what I THINK we should be doing. + mTextValue.AssignWithConversion(kNewLine); //This is what I THINK we should be doing. #else mTextValue=aChar; #endif @@ -1216,9 +1218,9 @@ void CAttributeToken::DebugDumpToken(nsOutputStream& out) { */ void CAttributeToken::GetSource(nsString& anOutputString){ anOutputString=mTextKey; - anOutputString+="="; + anOutputString.AppendWithConversion("="); anOutputString+=mTextValue; - anOutputString+=";"; + anOutputString.AppendWithConversion(";"); } /* @@ -1230,9 +1232,9 @@ void CAttributeToken::GetSource(nsString& anOutputString){ */ void CAttributeToken::AppendSource(nsString& anOutputString){ anOutputString+=mTextKey; - anOutputString+="="; + anOutputString.AppendWithConversion("="); anOutputString+=mTextValue; - anOutputString+=";"; + anOutputString.AppendWithConversion(";"); } /* @@ -1277,7 +1279,7 @@ nsresult ConsumeQuotedString(PRUnichar aChar,nsString& aString,nsScanner& aScann */ static nsresult ConsumeAttributeValueText(PRUnichar,nsString& aString,nsScanner& aScanner){ - static nsString theTerminals("\b\t\n\r >",6); + static nsString theTerminals = NS_ConvertToString("\b\t\n\r >",6); nsresult result=aScanner.ReadUntil(aString,theTerminals,PR_FALSE); //Let's force quotes if either the first or last char is quoted. @@ -1333,7 +1335,7 @@ nsresult CAttributeToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt32 a } else { //If you're here, handle an unquoted key. - static nsString theTerminals("\b\t\n\r \"<=>",9); + static nsString theTerminals = NS_ConvertToString("\b\t\n\r \"<=>",9); result=aScanner.ReadUntil(mTextKey,theTerminals,PR_FALSE); } @@ -1475,7 +1477,7 @@ PRInt32 CWhitespaceToken::GetTokenType(void) { * @return error result */ nsresult CWhitespaceToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt32 aMode) { - mTextValue=aChar; + mTextValue.AssignWithConversion(aChar); nsresult result=aScanner.ReadWhitespace(mTextValue); if(NS_OK==result) { mTextValue.StripChar(kCR); @@ -1520,7 +1522,7 @@ CEntityToken::CEntityToken(const nsString& aName) : CHTMLToken(aName) { */ nsresult CEntityToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt32 aMode) { if(aChar) - mTextValue=aChar; + mTextValue.AssignWithConversion(aChar); nsresult result=ConsumeEntity(aChar,mTextValue,aScanner); return result; } @@ -1686,7 +1688,7 @@ PRInt32 CEntityToken::TranslateToUnicodeStr(nsString& aString) { value = nsHTMLEntities::EntityToUnicode(mTextValue); if(-1AppendElement(new nsString(aURLSpec)); str.Truncate(); nsString(aURLSpec).Left(str,5); - if (str.Equals("http:")) { + if (str.EqualsWithConversion("http:")) { g_iProcessed++; if (g_iProcessed == (g_iMaxProcess > 0 ? g_iMaxProcess-1 : 0)) g_bHitTop = PR_TRUE; @@ -328,7 +328,7 @@ extern "C" NS_EXPORT int DebugRobot( } char* spec; (void)url->GetSpec(&spec); - nsAutoString theSpec(spec); + nsAutoString theSpec; theSpec.AssignWithConversion(spec); nsCRT::free(spec); nsCOMPtr webNav(do_QueryInterface(docShell)); webNav->LoadURI(theSpec.GetUnicode());/* XXX hook up stream listener here! */ diff --git a/parser/htmlparser/robot/nsRobotSink.cpp b/parser/htmlparser/robot/nsRobotSink.cpp index b717f6fed4a4..777609affe47 100644 --- a/parser/htmlparser/robot/nsRobotSink.cpp +++ b/parser/htmlparser/robot/nsRobotSink.cpp @@ -219,7 +219,7 @@ NS_IMETHODIMP RobotSink::OpenContainer(const nsIParserNode& aNode) { nsAutoString tmp(aNode.GetText()); tmp.ToLowerCase(); - if (tmp.Equals("a")) { + if (tmp.EqualsWithConversion("a")) { nsAutoString k, v; PRInt32 ac = aNode.GetAttributeCount(); for (PRInt32 i = 0; i < ac; i++) { @@ -228,7 +228,7 @@ NS_IMETHODIMP RobotSink::OpenContainer(const nsIParserNode& aNode) k.Truncate(); k.Append(key); k.ToLowerCase(); - if (k.Equals("href")) { + if (k.EqualsWithConversion("href")) { // Get value and remove mandatory quotes v.Truncate(); v.Append(aNode.GetValueAt(i)); @@ -363,7 +363,7 @@ void RobotSink::ProcessLink(const nsString& aLink) absURLSpec.Truncate(); char* str; absurl->GetSpec(&str); - absURLSpec = str; + absURLSpec.AssignWithConversion(str); nsCRT::free(str); } } diff --git a/parser/htmlparser/src/CNavDTD.cpp b/parser/htmlparser/src/CNavDTD.cpp index b2e2a5191f36..88dc292738dd 100644 --- a/parser/htmlparser/src/CNavDTD.cpp +++ b/parser/htmlparser/src/CNavDTD.cpp @@ -134,9 +134,7 @@ NS_IMPL_RELEASE(CNavDTD) CNavDTD::CNavDTD() : nsIDTD(), mMisplacedContent(0), mSkippedContent(0), - mSharedNodes(0), - mScratch(""), - mMimeType("") { + mSharedNodes(0) { NS_INIT_REFCNT(); mSink = 0; mParser=0; @@ -373,18 +371,18 @@ eAutoDetectResult CNavDTD::CanParse(CParserContext& aParserContext,nsString& aBu if(eViewSource==aParserContext.mParserCommand) { - if(PR_TRUE==aParserContext.mMimeType.Equals(kPlainTextContentType)) { + if(PR_TRUE==aParserContext.mMimeType.EqualsWithConversion(kPlainTextContentType)) { result=ePrimaryDetect; } - else if(aParserContext.mMimeType.Equals(kRTFTextContentType)){ + else if(aParserContext.mMimeType.EqualsWithConversion(kRTFTextContentType)){ result=ePrimaryDetect; } } else { - if(PR_TRUE==aParserContext.mMimeType.Equals(kHTMLTextContentType)) { + if(PR_TRUE==aParserContext.mMimeType.EqualsWithConversion(kHTMLTextContentType)) { result=ePrimaryDetect; } - else if(PR_TRUE==aParserContext.mMimeType.Equals(kPlainTextContentType)) { + else if(PR_TRUE==aParserContext.mMimeType.EqualsWithConversion(kPlainTextContentType)) { result=ePrimaryDetect; } else { @@ -393,7 +391,7 @@ eAutoDetectResult CNavDTD::CanParse(CParserContext& aParserContext,nsString& aBu if(BufferContainsHTML(aBuffer,theBufHasXML)){ result = eValidDetect ; if(0==aParserContext.mMimeType.Length()) { - aParserContext.SetMimeType(kHTMLTextContentType); + aParserContext.SetMimeType(NS_ConvertToString(kHTMLTextContentType)); result = (theBufHasXML) ? eValidDetect : ePrimaryDetect; } } @@ -482,7 +480,7 @@ nsresult CNavDTD::BuildModel(nsIParser* aParser,nsITokenizer* aTokenizer,nsIToke if(!mBodyContext->GetCount()) { //if the content model is empty, then begin by opening ... - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_html,"html"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_html,NS_ConvertToString("html")); HandleStartToken(theToken); //this token should get pushed on the context stack, don't recycle it. if(ePlainText==mDocType) { @@ -540,7 +538,7 @@ nsresult CNavDTD::DidBuildModel(nsresult anErrorCode,PRBool aNotifySink,nsIParse mSkipTarget=eHTMLTag_unknown; //clear this in case we were searching earlier. - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,"body"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,NS_ConvertToString("body")); mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack, don't recycle it result=BuildModel(aParser,mTokenizer,0,aSink); } @@ -726,7 +724,7 @@ nsresult CNavDTD::HandleToken(CToken* aToken,nsIParser* aParser){ mMisplacedContent.Push(aToken); aToken->mUseCount++; if(mParseMode==eParseMode_quirks && (gHTMLElements[theTag].HasSpecialProperty(kRequiresBody))) { - CToken* theBodyToken=(CToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,"body"); + CToken* theBodyToken=(CToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,NS_ConvertToString("body")); result=HandleToken(theBodyToken,aParser); } return result; @@ -1131,7 +1129,7 @@ nsresult CNavDTD::WillHandleStartTag(CToken* aToken,eHTMLTags aTag,nsCParserNode CParserContext* pc=mParser->PeekContext(); void* theDocID=(pc)? pc->mKey:0; - result=theService->Notify(aTag,aNode,(PRUint32)theDocID,kHTMLTextContentType,mParser); + result=theService->Notify(aTag,aNode,(PRUint32)theDocID, NS_ConvertToString(kHTMLTextContentType), mParser); } } @@ -2129,7 +2127,7 @@ NS_IMETHODIMP CNavDTD::StringTagToIntTag(nsString &aTag, PRInt32* aIntTag) const } NS_IMETHODIMP CNavDTD::IntTagToStringTag(PRInt32 aIntTag, nsString& aTag) const { - aTag = nsHTMLTags::GetStringValue((nsHTMLTag)aIntTag); + aTag.AssignWithConversion(nsHTMLTags::GetStringValue((nsHTMLTag)aIntTag)); return NS_OK; } diff --git a/parser/htmlparser/src/COtherDTD.cpp b/parser/htmlparser/src/COtherDTD.cpp index fb1c1e148761..b6c4b8f2fa52 100644 --- a/parser/htmlparser/src/COtherDTD.cpp +++ b/parser/htmlparser/src/COtherDTD.cpp @@ -107,7 +107,7 @@ class CTagFinder: public nsDequeFunctor{ public: CTagFinder(){} - void Initialize(const nsString &aTagName) {mTagName = aTagName;} + void Initialize(const nsString &aTagName) {mTagName.Assign(aTagName);} virtual ~CTagFinder() { } @@ -220,7 +220,7 @@ NS_IMPL_RELEASE(COtherDTD) * @param * @return */ -COtherDTD::COtherDTD() : nsIDTD(), mMisplacedContent(0), mSkippedContent(0), mSharedNodes(0), mScratch("") { +COtherDTD::COtherDTD() : nsIDTD(), mMisplacedContent(0), mSkippedContent(0), mSharedNodes(0) { NS_INIT_REFCNT(); mSink = 0; mParser=0; @@ -471,7 +471,7 @@ eAutoDetectResult COtherDTD::CanParse(CParserContext& aParserContext,nsString& a if(eViewSource!=aParserContext.mParserCommand) { - if(PR_TRUE==(aParserContext.mMimeType.Equals(kHTMLTextContentType) || aParserContext.mMimeType.Equals(kPlainTextContentType))) { + if(PR_TRUE==(aParserContext.mMimeType.EqualsWithConversion(kHTMLTextContentType) || aParserContext.mMimeType.EqualsWithConversion(kPlainTextContentType))) { result=ePrimaryDetect; } else { @@ -480,7 +480,7 @@ eAutoDetectResult COtherDTD::CanParse(CParserContext& aParserContext,nsString& a if(BufferContainsHTML(aBuffer,theBufHasXML)){ result = eValidDetect ; if(0==aParserContext.mMimeType.Length()) { - aParserContext.SetMimeType(kHTMLTextContentType); + aParserContext.SetMimeType( NS_ConvertToString(kHTMLTextContentType) ); result = (theBufHasXML) ? eValidDetect : ePrimaryDetect; } } @@ -569,7 +569,7 @@ nsresult COtherDTD::BuildModel(nsIParser* aParser,nsITokenizer* aTokenizer,nsITo if(!mBodyContext->GetCount()) { //if the content model is empty, then begin by opening ... - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_html,"html"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_html, NS_ConvertToString("html")); HandleStartToken(theToken); //this token should get pushed on the context stack, don't recycle it. } @@ -623,11 +623,11 @@ nsresult COtherDTD::DidBuildModel(nsresult anErrorCode,PRBool aNotifySink,nsIPar mTokenizer->PrependTokens(mMisplacedContent); //push misplaced content if(ePlainText==mDocType) { - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_pre,"pre"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_pre, NS_ConvertToString("pre")); mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack, don't recycle it } - CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body,"body"); + CStartToken *theToken=(CStartToken*)mTokenRecycler->CreateTokenOfType(eToken_start,eHTMLTag_body, NS_ConvertToString("body")); mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack, don't recycle it result=BuildModel(aParser,mTokenizer,0,aSink); @@ -1204,7 +1204,7 @@ nsresult COtherDTD::WillHandleStartTag(CToken* aToken,eHTMLTags aTag,nsCParserNo CParserContext* pc=mParser->PeekContext(); void* theDocID=(pc)? pc->mKey:0; - result=theService->Notify(aTag,aNode,(PRUint32)theDocID,kHTMLTextContentType,mParser); + result=theService->Notify(aTag,aNode,(PRUint32)theDocID, NS_ConvertToString(kHTMLTextContentType), mParser); } } @@ -2075,7 +2075,7 @@ nsresult COtherDTD::CollectSkippedContent(nsCParserNode& aNode,PRInt32 &aCount) // the parser and into the form element code PRBool aMustConvertLinebreaks = PR_FALSE; - mScratch=""; + mScratch.SetLength(0); aNode.SetSkippedContent(mScratch); for(aIndex=0;aIndexparser = nsnull; mState->tokenDeque = nsnull; - nsAutoString buffer("UTF-16"); + nsAutoString buffer; buffer.AssignWithConversion("UTF-16"); const PRUnichar* encoding = buffer.GetUnicode(); if (encoding) { mExpatParser = XML_ParserCreate((const XML_Char*) encoding); @@ -267,7 +267,10 @@ void nsExpatTokenizer::GetLine(const char* aSourceBuffer, PRUint32 aLength, aLine.Truncate(0); if (startIndex == endIndex) { /* Special case if the error is on a line where the only character is a newline */ - aLine.Append(""); + // STRING USE WARNING: I have no idea what this is supposed to do; to me it looks like a no-op + // ... so I'm not going to delete it but I will fix it to conform to the new standard. + // aLine.Append(""); + aLine.AppendWithConversion(""); } else { NS_ASSERTION(endIndex - startIndex >= sizeof(PRUnichar), "?"); @@ -291,15 +294,15 @@ void nsExpatTokenizer::GetLine(const char* aSourceBuffer, PRUint32 aLength, static nsresult CreateErrorText(const nsParserError* aError, nsString& aErrorString) { - aErrorString = "XML Parsing Error: "; + aErrorString.AssignWithConversion("XML Parsing Error: "); if (aError) { aErrorString.Append(aError->description); - aErrorString.Append("\nLine Number "); - aErrorString.Append(aError->lineNumber, 10); - aErrorString.Append(", Column "); - aErrorString.Append(aError->colNumber, 10); - aErrorString.Append(":"); + aErrorString.AppendWithConversion("\nLine Number "); + aErrorString.AppendWithConversion(aError->lineNumber, 10); + aErrorString.AppendWithConversion(", Column "); + aErrorString.AppendWithConversion(aError->colNumber, 10); + aErrorString.AppendWithConversion(":"); } return NS_OK; @@ -311,10 +314,10 @@ CreateSourceText(const nsParserError* aError, nsString& aSourceString) PRInt32 errorPosition = aError->colNumber; aSourceString.Append(aError->sourceLine); - aSourceString.Append("\n"); + aSourceString.AppendWithConversion("\n"); for (int i = 0; i < errorPosition; i++) - aSourceString.Append("-"); - aSourceString.Append("^"); + aSourceString.AppendWithConversion("-"); + aSourceString.AppendWithConversion("^"); return NS_OK; } @@ -337,7 +340,7 @@ nsExpatTokenizer::AddErrorMessageTokens(nsParserError* aError) CAttributeToken* attrToken = (CAttributeToken*) mState->tokenRecycler->CreateTokenOfType(eToken_attribute, eHTMLTag_unknown); nsString& key = attrToken->GetKey(); - key.Assign("xmlns"); + key.AssignWithConversion("xmlns"); attrToken->SetStringValue(kHTMLNameSpaceURI); newToken->SetAttributeCount(1); newToken = (CToken*) attrToken; @@ -396,7 +399,7 @@ nsExpatTokenizer::PushXMLErrorTokens(const char *aBuffer, PRUint32 aLength, PRBo error->code = XML_GetErrorCode(mExpatParser); error->lineNumber = XML_GetCurrentLineNumber(mExpatParser); error->colNumber = XML_GetCurrentColumnNumber(mExpatParser); - error->description = XML_ErrorString(error->code); + error->description.AssignWithConversion(XML_ErrorString(error->code)); if (!aIsFinal) { PRInt32 byteIndexRelativeToFile = 0; byteIndexRelativeToFile = XML_GetCurrentByteIndex(mExpatParser); @@ -617,13 +620,13 @@ void nsExpatTokenizer::HandleProcessingInstruction(void *userData, CToken* theToken = state->tokenRecycler->CreateTokenOfType(eToken_instruction,eHTMLTag_unknown); if(theToken) { nsString& theString=theToken->GetStringValueXXX(); - theString. Append(""); + theString.AppendWithConversion("?>"); AddToken(theToken, NS_OK, state->tokenDeque, state->tokenRecycler); } else{ @@ -687,8 +690,8 @@ IsLoadableDTD(nsIURI** aDTD) res = dtdURL->GetFileName(&fileName); if (NS_SUCCEEDED(res) && nsnull != fileName) { nsSpecialSystemDirectory dtdPath(nsSpecialSystemDirectory::OS_CurrentProcessDirectory); - nsString path(kDTDDirectory); - path.Append(fileName); + nsString path; path.AssignWithConversion(kDTDDirectory); + path.AppendWithConversion(fileName); dtdPath += path; if (dtdPath.Exists()) { // The DTD was found in the local DTD directory. @@ -728,7 +731,7 @@ nsExpatTokenizer::OpenInputStream(const nsString& aURLStr, rv = NS_OpenURI(in, uri); char* absURL = nsnull; uri->GetSpec(&absURL); - aAbsURL->Append(absURL); + aAbsURL->AppendWithConversion(absURL); nsCRT::free(absURL); } else { @@ -747,7 +750,7 @@ nsresult nsExpatTokenizer::LoadStream(nsIInputStream* in, PRUint32 aCount = 1024, bufsize = aCount*sizeof(PRUnichar); nsIUnicharInputStream *uniIn = nsnull; - nsAutoString utf8("UTF-8"); + nsAutoString utf8; utf8.AssignWithConversion("UTF-8"); nsresult res = NS_NewConverterStream(&uniIn, nsnull, @@ -815,7 +818,7 @@ int nsExpatTokenizer::HandleExternalEntityRef(XML_Parser parser, // Pass the buffer to expat for parsing if (NS_SUCCEEDED(rv) && nsnull != uniBuf) { // Create a parser for parsing the external entity - nsAutoString encoding("UTF-16"); + nsAutoString encoding; encoding.AssignWithConversion("UTF-16"); XML_Parser entParser = nsnull; entParser = XML_ExternalEntityParserCreate(parser, 0, @@ -854,10 +857,10 @@ void nsExpatTokenizer::HandleStartDoctypeDecl(void *userData, CToken* token = state->tokenRecycler->CreateTokenOfType(eToken_doctypeDecl, eHTMLTag_unknown); if (token) { nsString& str = token->GetStringValueXXX(); - str.Append(kDocTypeDeclPrefix); - str.Append(" "); + str.AppendWithConversion(kDocTypeDeclPrefix); + str.AppendWithConversion(" "); str.Append((PRUnichar*) doctypeName); - str.Append(">"); + str.AppendWithConversion(">"); AddToken(token, NS_OK, state->tokenDeque, state->tokenRecycler); } } diff --git a/parser/htmlparser/src/nsHTMLContentSinkStream.cpp b/parser/htmlparser/src/nsHTMLContentSinkStream.cpp index 3ee154f932ef..7dc348a434ab 100644 --- a/parser/htmlparser/src/nsHTMLContentSinkStream.cpp +++ b/parser/htmlparser/src/nsHTMLContentSinkStream.cpp @@ -55,7 +55,7 @@ static char* gHeaderComment = " *********************************************************/ - aString=""; + temp.AssignWithConversion("->"); result=aScanner.ReadUntil(aString,temp,PR_FALSE); } } @@ -1043,8 +1043,10 @@ PRInt32 CNewlineToken::GetTokenType(void) { */ nsString& CNewlineToken::GetStringValueXXX(void) { static nsString* theStr=0; - if(!theStr) - theStr=new nsString("\n"); + if(!theStr) { + theStr=new nsString; + theStr->AssignWithConversion("\n"); + } return *theStr; } @@ -1059,7 +1061,7 @@ nsString& CNewlineToken::GetStringValueXXX(void) { nsresult CNewlineToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt32 aMode) { #if 1 - mTextValue=kNewLine; //This is what I THINK we should be doing. + mTextValue.AssignWithConversion(kNewLine); //This is what I THINK we should be doing. #else mTextValue=aChar; #endif @@ -1216,9 +1218,9 @@ void CAttributeToken::DebugDumpToken(nsOutputStream& out) { */ void CAttributeToken::GetSource(nsString& anOutputString){ anOutputString=mTextKey; - anOutputString+="="; + anOutputString.AppendWithConversion("="); anOutputString+=mTextValue; - anOutputString+=";"; + anOutputString.AppendWithConversion(";"); } /* @@ -1230,9 +1232,9 @@ void CAttributeToken::GetSource(nsString& anOutputString){ */ void CAttributeToken::AppendSource(nsString& anOutputString){ anOutputString+=mTextKey; - anOutputString+="="; + anOutputString.AppendWithConversion("="); anOutputString+=mTextValue; - anOutputString+=";"; + anOutputString.AppendWithConversion(";"); } /* @@ -1277,7 +1279,7 @@ nsresult ConsumeQuotedString(PRUnichar aChar,nsString& aString,nsScanner& aScann */ static nsresult ConsumeAttributeValueText(PRUnichar,nsString& aString,nsScanner& aScanner){ - static nsString theTerminals("\b\t\n\r >",6); + static nsString theTerminals = NS_ConvertToString("\b\t\n\r >",6); nsresult result=aScanner.ReadUntil(aString,theTerminals,PR_FALSE); //Let's force quotes if either the first or last char is quoted. @@ -1333,7 +1335,7 @@ nsresult CAttributeToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt32 a } else { //If you're here, handle an unquoted key. - static nsString theTerminals("\b\t\n\r \"<=>",9); + static nsString theTerminals = NS_ConvertToString("\b\t\n\r \"<=>",9); result=aScanner.ReadUntil(mTextKey,theTerminals,PR_FALSE); } @@ -1475,7 +1477,7 @@ PRInt32 CWhitespaceToken::GetTokenType(void) { * @return error result */ nsresult CWhitespaceToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt32 aMode) { - mTextValue=aChar; + mTextValue.AssignWithConversion(aChar); nsresult result=aScanner.ReadWhitespace(mTextValue); if(NS_OK==result) { mTextValue.StripChar(kCR); @@ -1520,7 +1522,7 @@ CEntityToken::CEntityToken(const nsString& aName) : CHTMLToken(aName) { */ nsresult CEntityToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt32 aMode) { if(aChar) - mTextValue=aChar; + mTextValue.AssignWithConversion(aChar); nsresult result=ConsumeEntity(aChar,mTextValue,aScanner); return result; } @@ -1686,7 +1688,7 @@ PRInt32 CEntityToken::TranslateToUnicodeStr(nsString& aString) { value = nsHTMLEntities::EntityToUnicode(mTextValue); if(-1