diff --git a/htmlparser/src/nsExpatDTD.cpp b/htmlparser/src/nsExpatDTD.cpp
index c52be44278e..fe160e0cf50 100644
--- a/htmlparser/src/nsExpatDTD.cpp
+++ b/htmlparser/src/nsExpatDTD.cpp
@@ -310,12 +310,12 @@ nsresult nsExpatDTD::Terminate(nsIParser* aParser)
*/
void nsExpatDTD::SetupExpatCallbacks(void) {
if (mExpatParser) {
- XML_SetElementHandler(mExpatParser, HandleStartElement, HandleEndElement);
- XML_SetCharacterDataHandler(mExpatParser, HandleCharacterData);
- XML_SetProcessingInstructionHandler(mExpatParser, HandleProcessingInstruction);
+ XML_SetElementHandler(mExpatParser, DTD_HandleStartElement, DTD_HandleEndElement);
+ XML_SetCharacterDataHandler(mExpatParser, DTD_HandleCharacterData);
+ XML_SetProcessingInstructionHandler(mExpatParser, DTD_HandleProcessingInstruction);
// XML_SetDefaultHandler(mExpatParser, NULL);
// XML_SetUnparsedEntityDeclHandler(mExpatParser, NULL);
- XML_SetNotationDeclHandler(mExpatParser, HandleNotationDecl);
+ XML_SetNotationDeclHandler(mExpatParser, DTD_HandleNotationDecl);
// XML_SetExternalEntityRefHandler(mExpatParser, NULL);
// XML_SetUnknownEncodingHandler(mExpatParser, NULL, NULL);
}
@@ -536,64 +536,64 @@ nsresult nsExpatDTD::ParseXMLBuffer(const char *buffer){
/* Expat Callback Functions start here */
/***************************************/
-void nsExpatDTD::HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts)
+void DTD_HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleStartElement() not yet implemented.");
}
-void nsExpatDTD::HandleEndElement(void *userData, const XML_Char *name)
+void DTD_HandleEndElement(void *userData, const XML_Char *name)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleEndElement() not yet implemented.");
}
-void nsExpatDTD::HandleCharacterData(void *userData, const XML_Char *s, int len)
+void DTD_HandleCharacterData(void *userData, const XML_Char *s, int len)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleCharacterData() not yet implemented.");
}
-void nsExpatDTD::HandleProcessingInstruction(void *userData,
- const XML_Char *target,
- const XML_Char *data)
+void DTD_HandleProcessingInstruction(void *userData,
+ const XML_Char *target,
+ const XML_Char *data)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleProcessingInstruction() not yet implemented.");
}
-void nsExpatDTD::HandleDefault(void *userData, const XML_Char *s, int len)
+void DTD_HandleDefault(void *userData, const XML_Char *s, int len)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleDefault() not yet implemented.");
}
-void nsExpatDTD::HandleUnparsedEntityDecl(void *userData,
- const XML_Char *entityName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId,
- const XML_Char *notationName)
+void DTD_HandleUnparsedEntityDecl(void *userData,
+ const XML_Char *entityName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId,
+ const XML_Char *notationName)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleUnparsedEntityDecl() not yet implemented.");
}
-void nsExpatDTD::HandleNotationDecl(void *userData,
- const XML_Char *notationName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId)
+void DTD_HandleNotationDecl(void *userData,
+ const XML_Char *notationName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleNotationDecl() not yet implemented.");
}
-void nsExpatDTD::HandleExternalEntityRef(XML_Parser parser,
- const XML_Char *openEntityNames,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId)
+void DTD_HandleExternalEntityRef(XML_Parser parser,
+ const XML_Char *openEntityNames,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleExternalEntityRef() not yet implemented.");
}
-void nsExpatDTD::HandleUnknownEncoding(void *encodingHandlerData,
- const XML_Char *name,
- XML_Encoding *info)
+void DTD_HandleUnknownEncoding(void *encodingHandlerData,
+ const XML_Char *name,
+ XML_Encoding *info)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleUnknownEncoding() not yet implemented.");
}
diff --git a/htmlparser/src/nsExpatDTD.h b/htmlparser/src/nsExpatDTD.h
index cd2a39a417b..e69de29bb2d 100644
--- a/htmlparser/src/nsExpatDTD.h
+++ b/htmlparser/src/nsExpatDTD.h
@@ -1,297 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/*
- * The contents of this file are subject to the Netscape Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/NPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * This Original Code has been modified by IBM Corporation. Modifications made by IBM
- * described herein are Copyright (c) International Business Machines Corporation, 2000.
- * Modifications to Mozilla code or documentation identified per MPL Section 3.3
- *
- * Date Modified by Description of modification
- * 04/20/2000 IBM Corp. OS/2 VisualAge build.
- */
-
-/**
- * MODULE NOTES:
- * @update gess 4/8/98
- *
- *
- */
-
-#ifndef __NS_EXPAT_DTD
-#define __NS_EXPAT_DTD
-
-#include "nsIDTD.h"
-#include "nsITokenizer.h"
-#include "nsISupports.h"
-#include "nsHTMLTokens.h"
-#include "nshtmlpars.h"
-#include "nsVoidArray.h"
-#include "nsDeque.h"
-#include "nsIContentSink.h"
-#include "xmlparse.h"
-
-
-#define NS_EXPAT_DTD_IID \
- {0x5ad4b431, 0xcabb, 0x11d2, \
- {0xab, 0xcb, 0x0, 0x10, 0x4b, 0x98, 0x3f, 0xd4}}
-
-
-class nsIDTDDebug;
-class nsIParserNode;
-class nsParser;
-
-
-
-class nsExpatDTD : public nsIDTD {
-
- public:
-
- NS_DECL_ISUPPORTS
-
-
- /**
- *
- *
- * @update gess 4/9/98
- * @param
- * @return
- */
- nsExpatDTD();
-
- /**
- *
- *
- * @update gess 4/9/98
- * @param
- * @return
- */
- virtual ~nsExpatDTD();
-
- virtual const nsIID& GetMostDerivedIID(void) const;
-
- /**
- * Call this method if you want the DTD to construct a clone of itself.
- * @update gess7/23/98
- * @param
- * @return
- */
- virtual nsresult CreateNewInstance(nsIDTD** aInstancePtrResult);
-
- /**
- * This method is called to determine if the given DTD can parse
- * a document in a given source-type.
- * NOTE: Parsing always assumes that the end result will involve
- * storing the result in the main content model.
- * @update gess6/24/98
- * @param
- * @return TRUE if this DTD can satisfy the request; FALSE otherwise.
- */
- virtual eAutoDetectResult CanParse(CParserContext& aParserContext,nsString& aBuffer, PRInt32 aVersion);
-
- /**
- * The parser uses a code sandwich to wrap the parsing process. Before
- * the process begins, WillBuildModel() is called. Afterwards the parser
- * calls DidBuildModel().
- * @update rickg 03.20.2000
- * @param aParserContext
- * @param aSink
- * @return error code (almost always 0)
- */
- NS_IMETHOD WillBuildModel( const CParserContext& aParserContext,nsIContentSink* aSink);
-
-
- /**
- * The parser uses a code sandwich to wrap the parsing process. Before
- * the process begins, WillBuildModel() is called. Afterwards the parser
- * calls DidBuildModel().
- * @update gess5/18/98
- * @param aFilename is the name of the file being parsed.
- * @return error code (almost always 0)
- */
- NS_IMETHOD BuildModel(nsIParser* aParser,nsITokenizer* aTokenizer,nsITokenObserver* anObserver=0,nsIContentSink* aSink=0);
-
- /**
- * The parser uses a code sandwich to wrap the parsing process. Before
- * the process begins, WillBuildModel() is called. Afterwards the parser
- * calls DidBuildModel().
- * @update gess5/18/98
- * @param anErrorCode contans the last error that occured
- * @return error code
- */
- NS_IMETHOD DidBuildModel(nsresult anErrorCode,PRBool aNotifySink,nsIParser* aParser,nsIContentSink* aSink=0);
-
- /**
- *
- * @update gess 3/25/98
- * @param aToken -- token object to be put into content model
- * @return 0 if all is well; non-zero is an error
- */
- NS_IMETHOD HandleToken(CToken* aToken,nsIParser* aParser);
-
- /**
- *
- * @update gess12/28/98
- * @param
- * @return
- */
- NS_IMETHOD GetTokenizer(nsITokenizer*& aTokenizer);
-
- /**
- *
- * @update gess5/18/98
- * @param
- * @return
- */
- NS_IMETHOD WillResumeParse(void);
-
- /**
- *
- * @update gess5/18/98
- * @param
- * @return
- */
- NS_IMETHOD WillInterruptParse(void);
-
- /**
- * Called by the parser to initiate dtd verification of the
- * internal context stack.
- * @update gess 7/23/98
- * @param
- * @return
- */
- virtual PRBool Verify(nsString& aURLRef,nsIParser* aParser);
-
- /**
- * Set this to TRUE if you want the DTD to verify its
- * context stack.
- * @update gess 7/23/98
- * @param
- * @return
- */
- virtual void SetVerification(PRBool aEnable);
-
- /**
- * This method is called to determine whether or not a tag
- * of one type can contain a tag of another type.
- *
- * @update gess 3/25/98
- * @param aParent -- int tag of parent container
- * @param aChild -- int tag of child container
- * @return PR_TRUE if parent can contain child
- */
- virtual PRBool CanContain(PRInt32 aParent,PRInt32 aChild) const;
-
- /**
- * This method gets called to determine whether a given
- * tag is itself a container
- *
- * @update gess 3/25/98
- * @param aTag -- tag to test for containership
- * @return PR_TRUE if given tag can contain other tags
- */
- virtual PRBool IsContainer(PRInt32 aTag) const;
-
- /**
- * Use this id you want to stop the building content model
- * --------------[ Sets DTD to STOP mode ]----------------
- * It's recommended to use this method in accordance with
- * the parser's terminate() method.
- *
- * @update harishd 07/22/99
- * @param
- * @return
- */
- virtual nsresult Terminate(nsIParser* aParser=nsnull);
-
- /**
- * Give rest of world access to our tag enums, so that CanContain(), etc,
- * become useful.
- */
- NS_IMETHOD StringTagToIntTag(nsString &aTag, PRInt32* aIntTag) const;
-
- NS_IMETHOD IntTagToStringTag(PRInt32 aIntTag, nsString& aTag) const;
-
- NS_IMETHOD ConvertEntityToUnicode(const nsString& aEntity, PRInt32* aUnicode) const;
-
- virtual PRBool IsBlockElement(PRInt32 aTagID,PRInt32 aParentID) const {return PR_FALSE;}
- virtual PRBool IsInlineElement(PRInt32 aTagID,PRInt32 aParentID) const {return PR_FALSE;}
-
- /**
- * Retrieve a ptr to the global token recycler...
- * @update gess8/4/98
- * @return ptr to recycler (or null)
- */
- virtual nsTokenAllocator* GetTokenAllocator(void);
-
- /**
- * Parse an XML buffer using expat
- * @update nra 2/29/99
- * @return NS_ERROR_FAILURE if expat encounters an error, else NS_OK
- */
- nsresult ParseXMLBuffer(const char *buffer);
-
-protected:
- /**
- * Sets up the callbacks for the expat parser
- * @update nra 2/24/99
- * @param none
- * @return none
- */
- void SetupExpatCallbacks(void);
-
- /* The callback handlers that get called from the expat parser */
- static void PR_CALLBACK HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts);
- static void PR_CALLBACK HandleEndElement(void *userData, const XML_Char *name);
- static void PR_CALLBACK HandleCharacterData(void *userData, const XML_Char *s, int len);
- static void PR_CALLBACK HandleProcessingInstruction(void *userData,
- const XML_Char *target,
- const XML_Char *data);
- static void PR_CALLBACK HandleDefault(void *userData, const XML_Char *s, int len);
- static void PR_CALLBACK HandleUnparsedEntityDecl(void *userData,
- const XML_Char *entityName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId,
- const XML_Char *notationName);
- static void PR_CALLBACK HandleNotationDecl(void *userData,
- const XML_Char *notationName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId);
- static void PR_CALLBACK HandleExternalEntityRef(XML_Parser parser,
- const XML_Char *openEntityNames,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId);
- static void PR_CALLBACK HandleUnknownEncoding(void *encodingHandlerData,
- const XML_Char *name,
- XML_Encoding *info);
-
- XML_Parser mExpatParser;
- nsParser* mParser;
- nsIContentSink* mSink;
- nsString mFilename;
- PRInt32 mLineNumber;
- nsITokenizer* mTokenizer;
-};
-
-extern NS_HTMLPARS nsresult NS_New_Expat_DTD(nsIDTD** aInstancePtrResult);
-
-
-#endif
diff --git a/htmlparser/src/nsExpatTokenizer.cpp b/htmlparser/src/nsExpatTokenizer.cpp
index 21a3c6a2aee..02c491a2892 100644
--- a/htmlparser/src/nsExpatTokenizer.cpp
+++ b/htmlparser/src/nsExpatTokenizer.cpp
@@ -146,19 +146,19 @@ NS_IMPL_RELEASE(nsExpatTokenizer)
void nsExpatTokenizer::SetupExpatParser(void) {
if (mExpatParser) {
// Set up the callbacks
- XML_SetElementHandler(mExpatParser, HandleStartElement, HandleEndElement);
- XML_SetCharacterDataHandler(mExpatParser, HandleCharacterData);
- XML_SetProcessingInstructionHandler(mExpatParser, HandleProcessingInstruction);
- XML_SetDefaultHandlerExpand(mExpatParser, HandleDefault);
- XML_SetUnparsedEntityDeclHandler(mExpatParser, HandleUnparsedEntityDecl);
- XML_SetNotationDeclHandler(mExpatParser, HandleNotationDecl);
- XML_SetExternalEntityRefHandler(mExpatParser, HandleExternalEntityRef);
- XML_SetCommentHandler(mExpatParser, HandleComment);
- XML_SetUnknownEncodingHandler(mExpatParser, HandleUnknownEncoding, NULL);
- XML_SetCdataSectionHandler(mExpatParser, HandleStartCdataSection,
- HandleEndCdataSection);
+ XML_SetElementHandler(mExpatParser, Tokenizer_HandleStartElement, Tokenizer_HandleEndElement);
+ XML_SetCharacterDataHandler(mExpatParser, Tokenizer_HandleCharacterData);
+ XML_SetProcessingInstructionHandler(mExpatParser, Tokenizer_HandleProcessingInstruction);
+ XML_SetDefaultHandlerExpand(mExpatParser, Tokenizer_HandleDefault);
+ XML_SetUnparsedEntityDeclHandler(mExpatParser, Tokenizer_HandleUnparsedEntityDecl);
+ XML_SetNotationDeclHandler(mExpatParser, Tokenizer_HandleNotationDecl);
+ XML_SetExternalEntityRefHandler(mExpatParser, Tokenizer_HandleExternalEntityRef);
+ XML_SetCommentHandler(mExpatParser, Tokenizer_HandleComment);
+ XML_SetUnknownEncodingHandler(mExpatParser, Tokenizer_HandleUnknownEncoding, NULL);
+ XML_SetCdataSectionHandler(mExpatParser, Tokenizer_HandleStartCdataSection,
+ Tokenizer_HandleEndCdataSection);
- XML_SetDoctypeDeclHandler(mExpatParser, HandleStartDoctypeDecl, HandleEndDoctypeDecl);
+ XML_SetDoctypeDeclHandler(mExpatParser, Tokenizer_HandleStartDoctypeDecl, Tokenizer_HandleEndDoctypeDecl);
// Set up the user data.
XML_SetUserData(mExpatParser, (void*) mState);
@@ -519,7 +519,7 @@ void nsExpatTokenizer::FrontloadMisplacedContent(nsDeque& aDeque){
/* Expat Callback Functions start here */
/***************************************/
-void nsExpatTokenizer::HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts) {
+void Tokenizer_HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts) {
XMLParserState* state = (XMLParserState*) userData;
CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_unknown, nsLiteralString((PRUnichar*)name));
if(theToken) {
@@ -531,7 +531,7 @@ void nsExpatTokenizer::HandleStartElement(void *userData, const XML_Char *name,
startToken->SetIDAttributeAtom(attributeAtom);
}
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
// For each attribute on this element, create and add attribute tokens to the token queue
int theAttrCount=0;
@@ -555,7 +555,7 @@ void nsExpatTokenizer::HandleStartElement(void *userData, const XML_Char *name,
}
}
CToken* theTok=(CToken*)theAttrToken;
- AddToken(theTok, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theTok, NS_OK, state->tokenDeque, state->tokenAllocator);
atts += 2;
}
theToken->SetAttributeCount(theAttrCount);
@@ -565,18 +565,18 @@ void nsExpatTokenizer::HandleStartElement(void *userData, const XML_Char *name,
}
}
-void nsExpatTokenizer::HandleEndElement(void *userData, const XML_Char *name) {
+void Tokenizer_HandleEndElement(void *userData, const XML_Char *name) {
XMLParserState* state = (XMLParserState*) userData;
CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_end,eHTMLTag_unknown, nsLiteralString((PRUnichar *) name));
if(theToken) {
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
}
else{
//THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
}
}
-void nsExpatTokenizer::HandleCharacterData(void *userData, const XML_Char *s, int len) {
+void Tokenizer_HandleCharacterData(void *userData, const XML_Char *s, int len) {
XMLParserState* state = (XMLParserState*) userData;
if (state->incdata) {
@@ -615,7 +615,7 @@ void nsExpatTokenizer::HandleCharacterData(void *userData, const XML_Char *s, in
}
if(newToken) {
- AddToken(newToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(newToken, NS_OK, state->tokenDeque, state->tokenAllocator);
}
else {
//THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
@@ -623,7 +623,7 @@ void nsExpatTokenizer::HandleCharacterData(void *userData, const XML_Char *s, in
}
}
-void nsExpatTokenizer::HandleComment(void *userData, const XML_Char *name) {
+void Tokenizer_HandleComment(void *userData, const XML_Char *name) {
XMLParserState* state = (XMLParserState*) userData;
if (state->indoctype) {
// We do not want comments popping out of the doctype...
@@ -633,7 +633,7 @@ void nsExpatTokenizer::HandleComment(void *userData, const XML_Char *name) {
} else {
CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_comment, eHTMLTag_unknown, nsLiteralString((PRUnichar*)name));
if(theToken) {
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
}
else{
//THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
@@ -641,13 +641,13 @@ void nsExpatTokenizer::HandleComment(void *userData, const XML_Char *name) {
}
}
-void nsExpatTokenizer::HandleStartCdataSection(void *userData) {
+void Tokenizer_HandleStartCdataSection(void *userData) {
XMLParserState* state = (XMLParserState*) userData;
state->incdata = PR_TRUE;
}
-void nsExpatTokenizer::HandleEndCdataSection(void *userData) {
+void Tokenizer_HandleEndCdataSection(void *userData) {
XMLParserState* state = (XMLParserState*) userData;
CToken* cdataToken = state->tokenAllocator->CreateTokenOfType(eToken_cdatasection,
eHTMLTag_unknown,
@@ -655,15 +655,15 @@ void nsExpatTokenizer::HandleEndCdataSection(void *userData) {
// We've reached the end of the current CDATA section. Push the current
// CDATA token onto the token queue
- AddToken(cdataToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(cdataToken, NS_OK, state->tokenDeque, state->tokenAllocator);
state->incdata = PR_FALSE;
state->cdataText.Truncate();
}
-void nsExpatTokenizer::HandleProcessingInstruction(void *userData,
- const XML_Char *target,
- const XML_Char *data)
+void Tokenizer_HandleProcessingInstruction(void *userData,
+ const XML_Char *target,
+ const XML_Char *data)
{
XMLParserState* state = (XMLParserState*) userData;
nsAutoString theString;
@@ -677,14 +677,14 @@ void nsExpatTokenizer::HandleProcessingInstruction(void *userData,
CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_instruction,eHTMLTag_unknown, theString);
if(theToken) {
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
}
else{
//THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
}
}
-void nsExpatTokenizer::HandleDefault(void *userData, const XML_Char *s, int len) {
+void Tokenizer_HandleDefault(void *userData, const XML_Char *s, int len) {
XMLParserState* state = (XMLParserState*) userData;
if (state->indoctype) {
state->doctypeText.Append((PRUnichar*)s, len);
@@ -696,18 +696,18 @@ void nsExpatTokenizer::HandleDefault(void *userData, const XML_Char *s, int len)
while ((offset = str.FindChar('\n', PR_FALSE, offset + 1)) != -1) {
newLine = state->tokenAllocator->CreateTokenOfType(eToken_newline, eHTMLTag_unknown);
- AddToken(newLine, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(newLine, NS_OK, state->tokenDeque, state->tokenAllocator);
}
}
}
-void nsExpatTokenizer::HandleUnparsedEntityDecl(void *userData,
- const XML_Char *entityName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId,
- const XML_Char *notationName) {
- NS_NOTYETIMPLEMENTED("Error: nsExpatTokenizer::HandleUnparsedEntityDecl() not yet implemented.");
+void Tokenizer_HandleUnparsedEntityDecl(void *userData,
+ const XML_Char *entityName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId,
+ const XML_Char *notationName) {
+ NS_NOTYETIMPLEMENTED("Error: Tokenizer_HandleUnparsedEntityDecl() not yet implemented.");
}
@@ -832,19 +832,19 @@ nsresult nsExpatTokenizer::LoadStream(nsIInputStream* in,
return res;
}
-void nsExpatTokenizer::HandleNotationDecl(void *userData,
- const XML_Char *notationName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId){
- NS_NOTYETIMPLEMENTED("Error: nsExpatTokenizer::HandleNotationDecl() not yet implemented.");
+void Tokenizer_HandleNotationDecl(void *userData,
+ const XML_Char *notationName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId){
+ NS_NOTYETIMPLEMENTED("Error: Tokenizer_HandleNotationDecl() not yet implemented.");
}
-int nsExpatTokenizer::HandleExternalEntityRef(XML_Parser parser,
- const XML_Char *openEntityNames,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId)
+int Tokenizer_HandleExternalEntityRef(XML_Parser parser,
+ const XML_Char *openEntityNames,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId)
{
int result = PR_TRUE;
@@ -855,12 +855,12 @@ int nsExpatTokenizer::HandleExternalEntityRef(XML_Parser parser,
nsAutoString baseURL( (const PRUnichar*) base );
nsAutoString absURL;
- nsresult rv = OpenInputStream(urlSpec, baseURL, getter_AddRefs(in), &absURL);
+ nsresult rv = nsExpatTokenizer::OpenInputStream(urlSpec, baseURL, getter_AddRefs(in), &absURL);
if (NS_SUCCEEDED(rv) && nsnull != in) {
PRUint32 retLen = 0;
PRUnichar *uniBuf = nsnull;
- rv = LoadStream(in, uniBuf, retLen);
+ rv = nsExpatTokenizer::LoadStream(in, uniBuf, retLen);
// Pass the buffer to expat for parsing
if (NS_SUCCEEDED(rv) && nsnull != uniBuf) {
@@ -882,37 +882,37 @@ int nsExpatTokenizer::HandleExternalEntityRef(XML_Parser parser,
}
#else /* ! XML_DTD */
- NS_NOTYETIMPLEMENTED("Error: nsExpatTokenizer::HandleExternalEntityRef() not yet implemented.");
+ NS_NOTYETIMPLEMENTED("Error: Tokenizer_HandleExternalEntityRef() not yet implemented.");
#endif /* XML_DTD */
return result;
}
-int nsExpatTokenizer::HandleUnknownEncoding(void *encodingHandlerData,
- const XML_Char *name,
- XML_Encoding *info) {
- NS_NOTYETIMPLEMENTED("Error: nsExpatTokenizer::HandleUnknownEncoding() not yet implemented.");
+int Tokenizer_HandleUnknownEncoding(void *encodingHandlerData,
+ const XML_Char *name,
+ XML_Encoding *info) {
+ NS_NOTYETIMPLEMENTED("Error: Tokenizer_HandleUnknownEncoding() not yet implemented.");
int result=0;
return result;
}
-void nsExpatTokenizer::HandleStartDoctypeDecl(void *userData,
- const XML_Char *doctypeName)
+void Tokenizer_HandleStartDoctypeDecl(void *userData,
+ const XML_Char *doctypeName)
{
XMLParserState* state = (XMLParserState*) userData;
state->indoctype = PR_TRUE;
state->doctypeText.Assign(NS_LITERAL_STRING("doctypeText.AppendWithConversion(">");
CToken* token = state->tokenAllocator->CreateTokenOfType(eToken_doctypeDecl, eHTMLTag_unknown, state->doctypeText);
if (token) {
- AddToken(token, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(token, NS_OK, state->tokenDeque, state->tokenAllocator);
}
state->indoctype = PR_FALSE;
state->doctypeText.Truncate();
diff --git a/htmlparser/src/nsExpatTokenizer.h b/htmlparser/src/nsExpatTokenizer.h
index fa8fd39e33f..d5047e28041 100644
--- a/htmlparser/src/nsExpatTokenizer.h
+++ b/htmlparser/src/nsExpatTokenizer.h
@@ -18,12 +18,7 @@
* Rights Reserved.
*
* Contributor(s):
- * This Original Code has been modified by IBM Corporation. Modifications made by IBM
- * described herein are Copyright (c) International Business Machines Corporation, 2000.
- * Modifications to Mozilla code or documentation identified per MPL Section 3.3
- *
- * Date Modified by Description of modification
- * 04/20/2000 IBM Corp. OS/2 VisualAge build.
+ * IBM Corp.
*/
@@ -64,6 +59,46 @@ typedef struct _XMLParserState XMLParserState;
#pragma warning( disable : 4275 )
#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+ /* The callback handlers that get called from the expat parser */
+ void Tokenizer_HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts);
+ void Tokenizer_HandleEndElement(void *userData, const XML_Char *name);
+ void Tokenizer_HandleCharacterData(void *userData, const XML_Char *s, int len);
+ void Tokenizer_HandleComment(void *userData, const XML_Char *name);
+ void Tokenizer_HandleProcessingInstruction(void *userData,
+ const XML_Char *target,
+ const XML_Char *data);
+ void Tokenizer_HandleDefault(void *userData, const XML_Char *s, int len);
+ void Tokenizer_HandleStartCdataSection(void *userData);
+ void Tokenizer_HandleEndCdataSection(void *userData);
+ void Tokenizer_HandleUnparsedEntityDecl(void *userData,
+ const XML_Char *entityName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId,
+ const XML_Char *notationName);
+ void Tokenizer_HandleNotationDecl(void *userData,
+ const XML_Char *notationName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId);
+ int Tokenizer_HandleExternalEntityRef(XML_Parser parser,
+ const XML_Char *openEntityNames,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId);
+ int Tokenizer_HandleUnknownEncoding(void *encodingHandlerData,
+ const XML_Char *name,
+ XML_Encoding *info);
+ void Tokenizer_HandleStartDoctypeDecl(void *userData,
+ const XML_Char *doctypeName);
+ void Tokenizer_HandleEndDoctypeDecl(void *userData);
+#ifdef __cplusplus
+}
+#endif
+
CLASS_EXPORT_HTMLPARS nsExpatTokenizer : public nsHTMLTokenizer {
public:
nsExpatTokenizer(nsString* aURL = nsnull);
@@ -116,38 +151,38 @@ protected:
PRUint32 &retLen);
/* The callback handlers that get called from the expat parser */
- static void PR_CALLBACK HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts);
- static void PR_CALLBACK HandleEndElement(void *userData, const XML_Char *name);
- static void PR_CALLBACK HandleCharacterData(void *userData, const XML_Char *s, int len);
- static void PR_CALLBACK HandleComment(void *userData, const XML_Char *name);
- static void PR_CALLBACK HandleProcessingInstruction(void *userData,
+ friend void Tokenizer_HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts);
+ friend void Tokenizer_HandleEndElement(void *userData, const XML_Char *name);
+ friend void Tokenizer_HandleCharacterData(void *userData, const XML_Char *s, int len);
+ friend void Tokenizer_HandleComment(void *userData, const XML_Char *name);
+ friend void Tokenizer_HandleProcessingInstruction(void *userData,
const XML_Char *target,
const XML_Char *data);
- static void PR_CALLBACK HandleDefault(void *userData, const XML_Char *s, int len);
- static void PR_CALLBACK HandleStartCdataSection(void *userData);
- static void PR_CALLBACK HandleEndCdataSection(void *userData);
- static void PR_CALLBACK HandleUnparsedEntityDecl(void *userData,
+ friend void Tokenizer_HandleDefault(void *userData, const XML_Char *s, int len);
+ friend void Tokenizer_HandleStartCdataSection(void *userData);
+ friend void Tokenizer_HandleEndCdataSection(void *userData);
+ friend void Tokenizer_HandleUnparsedEntityDecl(void *userData,
const XML_Char *entityName,
const XML_Char *base,
const XML_Char *systemId,
const XML_Char *publicId,
const XML_Char *notationName);
- static void PR_CALLBACK HandleNotationDecl(void *userData,
+ friend void Tokenizer_HandleNotationDecl(void *userData,
const XML_Char *notationName,
const XML_Char *base,
const XML_Char *systemId,
const XML_Char *publicId);
- static int PR_CALLBACK HandleExternalEntityRef(XML_Parser parser,
+ friend int Tokenizer_HandleExternalEntityRef(XML_Parser parser,
const XML_Char *openEntityNames,
const XML_Char *base,
const XML_Char *systemId,
const XML_Char *publicId);
- static int PR_CALLBACK HandleUnknownEncoding(void *encodingHandlerData,
+ friend int Tokenizer_HandleUnknownEncoding(void *encodingHandlerData,
const XML_Char *name,
XML_Encoding *info);
- static void PR_CALLBACK HandleStartDoctypeDecl(void *userData,
+ friend void Tokenizer_HandleStartDoctypeDecl(void *userData,
const XML_Char *doctypeName);
- static void PR_CALLBACK HandleEndDoctypeDecl(void *userData);
+ friend void Tokenizer_HandleEndDoctypeDecl(void *userData);
XML_Parser mExpatParser;
PRUint32 mBytesParsed;
@@ -155,6 +190,7 @@ protected:
XMLParserState* mState;
};
+
extern NS_HTMLPARS nsresult NS_New_Expat_Tokenizer(nsITokenizer** aInstancePtrResult);
#endif
diff --git a/parser/htmlparser/src/nsExpatDTD.cpp b/parser/htmlparser/src/nsExpatDTD.cpp
index c52be44278e..fe160e0cf50 100644
--- a/parser/htmlparser/src/nsExpatDTD.cpp
+++ b/parser/htmlparser/src/nsExpatDTD.cpp
@@ -310,12 +310,12 @@ nsresult nsExpatDTD::Terminate(nsIParser* aParser)
*/
void nsExpatDTD::SetupExpatCallbacks(void) {
if (mExpatParser) {
- XML_SetElementHandler(mExpatParser, HandleStartElement, HandleEndElement);
- XML_SetCharacterDataHandler(mExpatParser, HandleCharacterData);
- XML_SetProcessingInstructionHandler(mExpatParser, HandleProcessingInstruction);
+ XML_SetElementHandler(mExpatParser, DTD_HandleStartElement, DTD_HandleEndElement);
+ XML_SetCharacterDataHandler(mExpatParser, DTD_HandleCharacterData);
+ XML_SetProcessingInstructionHandler(mExpatParser, DTD_HandleProcessingInstruction);
// XML_SetDefaultHandler(mExpatParser, NULL);
// XML_SetUnparsedEntityDeclHandler(mExpatParser, NULL);
- XML_SetNotationDeclHandler(mExpatParser, HandleNotationDecl);
+ XML_SetNotationDeclHandler(mExpatParser, DTD_HandleNotationDecl);
// XML_SetExternalEntityRefHandler(mExpatParser, NULL);
// XML_SetUnknownEncodingHandler(mExpatParser, NULL, NULL);
}
@@ -536,64 +536,64 @@ nsresult nsExpatDTD::ParseXMLBuffer(const char *buffer){
/* Expat Callback Functions start here */
/***************************************/
-void nsExpatDTD::HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts)
+void DTD_HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleStartElement() not yet implemented.");
}
-void nsExpatDTD::HandleEndElement(void *userData, const XML_Char *name)
+void DTD_HandleEndElement(void *userData, const XML_Char *name)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleEndElement() not yet implemented.");
}
-void nsExpatDTD::HandleCharacterData(void *userData, const XML_Char *s, int len)
+void DTD_HandleCharacterData(void *userData, const XML_Char *s, int len)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleCharacterData() not yet implemented.");
}
-void nsExpatDTD::HandleProcessingInstruction(void *userData,
- const XML_Char *target,
- const XML_Char *data)
+void DTD_HandleProcessingInstruction(void *userData,
+ const XML_Char *target,
+ const XML_Char *data)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleProcessingInstruction() not yet implemented.");
}
-void nsExpatDTD::HandleDefault(void *userData, const XML_Char *s, int len)
+void DTD_HandleDefault(void *userData, const XML_Char *s, int len)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleDefault() not yet implemented.");
}
-void nsExpatDTD::HandleUnparsedEntityDecl(void *userData,
- const XML_Char *entityName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId,
- const XML_Char *notationName)
+void DTD_HandleUnparsedEntityDecl(void *userData,
+ const XML_Char *entityName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId,
+ const XML_Char *notationName)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleUnparsedEntityDecl() not yet implemented.");
}
-void nsExpatDTD::HandleNotationDecl(void *userData,
- const XML_Char *notationName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId)
+void DTD_HandleNotationDecl(void *userData,
+ const XML_Char *notationName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleNotationDecl() not yet implemented.");
}
-void nsExpatDTD::HandleExternalEntityRef(XML_Parser parser,
- const XML_Char *openEntityNames,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId)
+void DTD_HandleExternalEntityRef(XML_Parser parser,
+ const XML_Char *openEntityNames,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleExternalEntityRef() not yet implemented.");
}
-void nsExpatDTD::HandleUnknownEncoding(void *encodingHandlerData,
- const XML_Char *name,
- XML_Encoding *info)
+void DTD_HandleUnknownEncoding(void *encodingHandlerData,
+ const XML_Char *name,
+ XML_Encoding *info)
{
NS_NOTYETIMPLEMENTED("Error: nsExpatDTD::HandleUnknownEncoding() not yet implemented.");
}
diff --git a/parser/htmlparser/src/nsExpatDTD.h b/parser/htmlparser/src/nsExpatDTD.h
index cd2a39a417b..e69de29bb2d 100644
--- a/parser/htmlparser/src/nsExpatDTD.h
+++ b/parser/htmlparser/src/nsExpatDTD.h
@@ -1,297 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/*
- * The contents of this file are subject to the Netscape Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/NPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * This Original Code has been modified by IBM Corporation. Modifications made by IBM
- * described herein are Copyright (c) International Business Machines Corporation, 2000.
- * Modifications to Mozilla code or documentation identified per MPL Section 3.3
- *
- * Date Modified by Description of modification
- * 04/20/2000 IBM Corp. OS/2 VisualAge build.
- */
-
-/**
- * MODULE NOTES:
- * @update gess 4/8/98
- *
- *
- */
-
-#ifndef __NS_EXPAT_DTD
-#define __NS_EXPAT_DTD
-
-#include "nsIDTD.h"
-#include "nsITokenizer.h"
-#include "nsISupports.h"
-#include "nsHTMLTokens.h"
-#include "nshtmlpars.h"
-#include "nsVoidArray.h"
-#include "nsDeque.h"
-#include "nsIContentSink.h"
-#include "xmlparse.h"
-
-
-#define NS_EXPAT_DTD_IID \
- {0x5ad4b431, 0xcabb, 0x11d2, \
- {0xab, 0xcb, 0x0, 0x10, 0x4b, 0x98, 0x3f, 0xd4}}
-
-
-class nsIDTDDebug;
-class nsIParserNode;
-class nsParser;
-
-
-
-class nsExpatDTD : public nsIDTD {
-
- public:
-
- NS_DECL_ISUPPORTS
-
-
- /**
- *
- *
- * @update gess 4/9/98
- * @param
- * @return
- */
- nsExpatDTD();
-
- /**
- *
- *
- * @update gess 4/9/98
- * @param
- * @return
- */
- virtual ~nsExpatDTD();
-
- virtual const nsIID& GetMostDerivedIID(void) const;
-
- /**
- * Call this method if you want the DTD to construct a clone of itself.
- * @update gess7/23/98
- * @param
- * @return
- */
- virtual nsresult CreateNewInstance(nsIDTD** aInstancePtrResult);
-
- /**
- * This method is called to determine if the given DTD can parse
- * a document in a given source-type.
- * NOTE: Parsing always assumes that the end result will involve
- * storing the result in the main content model.
- * @update gess6/24/98
- * @param
- * @return TRUE if this DTD can satisfy the request; FALSE otherwise.
- */
- virtual eAutoDetectResult CanParse(CParserContext& aParserContext,nsString& aBuffer, PRInt32 aVersion);
-
- /**
- * The parser uses a code sandwich to wrap the parsing process. Before
- * the process begins, WillBuildModel() is called. Afterwards the parser
- * calls DidBuildModel().
- * @update rickg 03.20.2000
- * @param aParserContext
- * @param aSink
- * @return error code (almost always 0)
- */
- NS_IMETHOD WillBuildModel( const CParserContext& aParserContext,nsIContentSink* aSink);
-
-
- /**
- * The parser uses a code sandwich to wrap the parsing process. Before
- * the process begins, WillBuildModel() is called. Afterwards the parser
- * calls DidBuildModel().
- * @update gess5/18/98
- * @param aFilename is the name of the file being parsed.
- * @return error code (almost always 0)
- */
- NS_IMETHOD BuildModel(nsIParser* aParser,nsITokenizer* aTokenizer,nsITokenObserver* anObserver=0,nsIContentSink* aSink=0);
-
- /**
- * The parser uses a code sandwich to wrap the parsing process. Before
- * the process begins, WillBuildModel() is called. Afterwards the parser
- * calls DidBuildModel().
- * @update gess5/18/98
- * @param anErrorCode contans the last error that occured
- * @return error code
- */
- NS_IMETHOD DidBuildModel(nsresult anErrorCode,PRBool aNotifySink,nsIParser* aParser,nsIContentSink* aSink=0);
-
- /**
- *
- * @update gess 3/25/98
- * @param aToken -- token object to be put into content model
- * @return 0 if all is well; non-zero is an error
- */
- NS_IMETHOD HandleToken(CToken* aToken,nsIParser* aParser);
-
- /**
- *
- * @update gess12/28/98
- * @param
- * @return
- */
- NS_IMETHOD GetTokenizer(nsITokenizer*& aTokenizer);
-
- /**
- *
- * @update gess5/18/98
- * @param
- * @return
- */
- NS_IMETHOD WillResumeParse(void);
-
- /**
- *
- * @update gess5/18/98
- * @param
- * @return
- */
- NS_IMETHOD WillInterruptParse(void);
-
- /**
- * Called by the parser to initiate dtd verification of the
- * internal context stack.
- * @update gess 7/23/98
- * @param
- * @return
- */
- virtual PRBool Verify(nsString& aURLRef,nsIParser* aParser);
-
- /**
- * Set this to TRUE if you want the DTD to verify its
- * context stack.
- * @update gess 7/23/98
- * @param
- * @return
- */
- virtual void SetVerification(PRBool aEnable);
-
- /**
- * This method is called to determine whether or not a tag
- * of one type can contain a tag of another type.
- *
- * @update gess 3/25/98
- * @param aParent -- int tag of parent container
- * @param aChild -- int tag of child container
- * @return PR_TRUE if parent can contain child
- */
- virtual PRBool CanContain(PRInt32 aParent,PRInt32 aChild) const;
-
- /**
- * This method gets called to determine whether a given
- * tag is itself a container
- *
- * @update gess 3/25/98
- * @param aTag -- tag to test for containership
- * @return PR_TRUE if given tag can contain other tags
- */
- virtual PRBool IsContainer(PRInt32 aTag) const;
-
- /**
- * Use this id you want to stop the building content model
- * --------------[ Sets DTD to STOP mode ]----------------
- * It's recommended to use this method in accordance with
- * the parser's terminate() method.
- *
- * @update harishd 07/22/99
- * @param
- * @return
- */
- virtual nsresult Terminate(nsIParser* aParser=nsnull);
-
- /**
- * Give rest of world access to our tag enums, so that CanContain(), etc,
- * become useful.
- */
- NS_IMETHOD StringTagToIntTag(nsString &aTag, PRInt32* aIntTag) const;
-
- NS_IMETHOD IntTagToStringTag(PRInt32 aIntTag, nsString& aTag) const;
-
- NS_IMETHOD ConvertEntityToUnicode(const nsString& aEntity, PRInt32* aUnicode) const;
-
- virtual PRBool IsBlockElement(PRInt32 aTagID,PRInt32 aParentID) const {return PR_FALSE;}
- virtual PRBool IsInlineElement(PRInt32 aTagID,PRInt32 aParentID) const {return PR_FALSE;}
-
- /**
- * Retrieve a ptr to the global token recycler...
- * @update gess8/4/98
- * @return ptr to recycler (or null)
- */
- virtual nsTokenAllocator* GetTokenAllocator(void);
-
- /**
- * Parse an XML buffer using expat
- * @update nra 2/29/99
- * @return NS_ERROR_FAILURE if expat encounters an error, else NS_OK
- */
- nsresult ParseXMLBuffer(const char *buffer);
-
-protected:
- /**
- * Sets up the callbacks for the expat parser
- * @update nra 2/24/99
- * @param none
- * @return none
- */
- void SetupExpatCallbacks(void);
-
- /* The callback handlers that get called from the expat parser */
- static void PR_CALLBACK HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts);
- static void PR_CALLBACK HandleEndElement(void *userData, const XML_Char *name);
- static void PR_CALLBACK HandleCharacterData(void *userData, const XML_Char *s, int len);
- static void PR_CALLBACK HandleProcessingInstruction(void *userData,
- const XML_Char *target,
- const XML_Char *data);
- static void PR_CALLBACK HandleDefault(void *userData, const XML_Char *s, int len);
- static void PR_CALLBACK HandleUnparsedEntityDecl(void *userData,
- const XML_Char *entityName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId,
- const XML_Char *notationName);
- static void PR_CALLBACK HandleNotationDecl(void *userData,
- const XML_Char *notationName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId);
- static void PR_CALLBACK HandleExternalEntityRef(XML_Parser parser,
- const XML_Char *openEntityNames,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId);
- static void PR_CALLBACK HandleUnknownEncoding(void *encodingHandlerData,
- const XML_Char *name,
- XML_Encoding *info);
-
- XML_Parser mExpatParser;
- nsParser* mParser;
- nsIContentSink* mSink;
- nsString mFilename;
- PRInt32 mLineNumber;
- nsITokenizer* mTokenizer;
-};
-
-extern NS_HTMLPARS nsresult NS_New_Expat_DTD(nsIDTD** aInstancePtrResult);
-
-
-#endif
diff --git a/parser/htmlparser/src/nsExpatTokenizer.cpp b/parser/htmlparser/src/nsExpatTokenizer.cpp
index 21a3c6a2aee..02c491a2892 100644
--- a/parser/htmlparser/src/nsExpatTokenizer.cpp
+++ b/parser/htmlparser/src/nsExpatTokenizer.cpp
@@ -146,19 +146,19 @@ NS_IMPL_RELEASE(nsExpatTokenizer)
void nsExpatTokenizer::SetupExpatParser(void) {
if (mExpatParser) {
// Set up the callbacks
- XML_SetElementHandler(mExpatParser, HandleStartElement, HandleEndElement);
- XML_SetCharacterDataHandler(mExpatParser, HandleCharacterData);
- XML_SetProcessingInstructionHandler(mExpatParser, HandleProcessingInstruction);
- XML_SetDefaultHandlerExpand(mExpatParser, HandleDefault);
- XML_SetUnparsedEntityDeclHandler(mExpatParser, HandleUnparsedEntityDecl);
- XML_SetNotationDeclHandler(mExpatParser, HandleNotationDecl);
- XML_SetExternalEntityRefHandler(mExpatParser, HandleExternalEntityRef);
- XML_SetCommentHandler(mExpatParser, HandleComment);
- XML_SetUnknownEncodingHandler(mExpatParser, HandleUnknownEncoding, NULL);
- XML_SetCdataSectionHandler(mExpatParser, HandleStartCdataSection,
- HandleEndCdataSection);
+ XML_SetElementHandler(mExpatParser, Tokenizer_HandleStartElement, Tokenizer_HandleEndElement);
+ XML_SetCharacterDataHandler(mExpatParser, Tokenizer_HandleCharacterData);
+ XML_SetProcessingInstructionHandler(mExpatParser, Tokenizer_HandleProcessingInstruction);
+ XML_SetDefaultHandlerExpand(mExpatParser, Tokenizer_HandleDefault);
+ XML_SetUnparsedEntityDeclHandler(mExpatParser, Tokenizer_HandleUnparsedEntityDecl);
+ XML_SetNotationDeclHandler(mExpatParser, Tokenizer_HandleNotationDecl);
+ XML_SetExternalEntityRefHandler(mExpatParser, Tokenizer_HandleExternalEntityRef);
+ XML_SetCommentHandler(mExpatParser, Tokenizer_HandleComment);
+ XML_SetUnknownEncodingHandler(mExpatParser, Tokenizer_HandleUnknownEncoding, NULL);
+ XML_SetCdataSectionHandler(mExpatParser, Tokenizer_HandleStartCdataSection,
+ Tokenizer_HandleEndCdataSection);
- XML_SetDoctypeDeclHandler(mExpatParser, HandleStartDoctypeDecl, HandleEndDoctypeDecl);
+ XML_SetDoctypeDeclHandler(mExpatParser, Tokenizer_HandleStartDoctypeDecl, Tokenizer_HandleEndDoctypeDecl);
// Set up the user data.
XML_SetUserData(mExpatParser, (void*) mState);
@@ -519,7 +519,7 @@ void nsExpatTokenizer::FrontloadMisplacedContent(nsDeque& aDeque){
/* Expat Callback Functions start here */
/***************************************/
-void nsExpatTokenizer::HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts) {
+void Tokenizer_HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts) {
XMLParserState* state = (XMLParserState*) userData;
CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_unknown, nsLiteralString((PRUnichar*)name));
if(theToken) {
@@ -531,7 +531,7 @@ void nsExpatTokenizer::HandleStartElement(void *userData, const XML_Char *name,
startToken->SetIDAttributeAtom(attributeAtom);
}
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
// For each attribute on this element, create and add attribute tokens to the token queue
int theAttrCount=0;
@@ -555,7 +555,7 @@ void nsExpatTokenizer::HandleStartElement(void *userData, const XML_Char *name,
}
}
CToken* theTok=(CToken*)theAttrToken;
- AddToken(theTok, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theTok, NS_OK, state->tokenDeque, state->tokenAllocator);
atts += 2;
}
theToken->SetAttributeCount(theAttrCount);
@@ -565,18 +565,18 @@ void nsExpatTokenizer::HandleStartElement(void *userData, const XML_Char *name,
}
}
-void nsExpatTokenizer::HandleEndElement(void *userData, const XML_Char *name) {
+void Tokenizer_HandleEndElement(void *userData, const XML_Char *name) {
XMLParserState* state = (XMLParserState*) userData;
CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_end,eHTMLTag_unknown, nsLiteralString((PRUnichar *) name));
if(theToken) {
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
}
else{
//THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
}
}
-void nsExpatTokenizer::HandleCharacterData(void *userData, const XML_Char *s, int len) {
+void Tokenizer_HandleCharacterData(void *userData, const XML_Char *s, int len) {
XMLParserState* state = (XMLParserState*) userData;
if (state->incdata) {
@@ -615,7 +615,7 @@ void nsExpatTokenizer::HandleCharacterData(void *userData, const XML_Char *s, in
}
if(newToken) {
- AddToken(newToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(newToken, NS_OK, state->tokenDeque, state->tokenAllocator);
}
else {
//THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
@@ -623,7 +623,7 @@ void nsExpatTokenizer::HandleCharacterData(void *userData, const XML_Char *s, in
}
}
-void nsExpatTokenizer::HandleComment(void *userData, const XML_Char *name) {
+void Tokenizer_HandleComment(void *userData, const XML_Char *name) {
XMLParserState* state = (XMLParserState*) userData;
if (state->indoctype) {
// We do not want comments popping out of the doctype...
@@ -633,7 +633,7 @@ void nsExpatTokenizer::HandleComment(void *userData, const XML_Char *name) {
} else {
CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_comment, eHTMLTag_unknown, nsLiteralString((PRUnichar*)name));
if(theToken) {
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
}
else{
//THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
@@ -641,13 +641,13 @@ void nsExpatTokenizer::HandleComment(void *userData, const XML_Char *name) {
}
}
-void nsExpatTokenizer::HandleStartCdataSection(void *userData) {
+void Tokenizer_HandleStartCdataSection(void *userData) {
XMLParserState* state = (XMLParserState*) userData;
state->incdata = PR_TRUE;
}
-void nsExpatTokenizer::HandleEndCdataSection(void *userData) {
+void Tokenizer_HandleEndCdataSection(void *userData) {
XMLParserState* state = (XMLParserState*) userData;
CToken* cdataToken = state->tokenAllocator->CreateTokenOfType(eToken_cdatasection,
eHTMLTag_unknown,
@@ -655,15 +655,15 @@ void nsExpatTokenizer::HandleEndCdataSection(void *userData) {
// We've reached the end of the current CDATA section. Push the current
// CDATA token onto the token queue
- AddToken(cdataToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(cdataToken, NS_OK, state->tokenDeque, state->tokenAllocator);
state->incdata = PR_FALSE;
state->cdataText.Truncate();
}
-void nsExpatTokenizer::HandleProcessingInstruction(void *userData,
- const XML_Char *target,
- const XML_Char *data)
+void Tokenizer_HandleProcessingInstruction(void *userData,
+ const XML_Char *target,
+ const XML_Char *data)
{
XMLParserState* state = (XMLParserState*) userData;
nsAutoString theString;
@@ -677,14 +677,14 @@ void nsExpatTokenizer::HandleProcessingInstruction(void *userData,
CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_instruction,eHTMLTag_unknown, theString);
if(theToken) {
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
}
else{
//THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
}
}
-void nsExpatTokenizer::HandleDefault(void *userData, const XML_Char *s, int len) {
+void Tokenizer_HandleDefault(void *userData, const XML_Char *s, int len) {
XMLParserState* state = (XMLParserState*) userData;
if (state->indoctype) {
state->doctypeText.Append((PRUnichar*)s, len);
@@ -696,18 +696,18 @@ void nsExpatTokenizer::HandleDefault(void *userData, const XML_Char *s, int len)
while ((offset = str.FindChar('\n', PR_FALSE, offset + 1)) != -1) {
newLine = state->tokenAllocator->CreateTokenOfType(eToken_newline, eHTMLTag_unknown);
- AddToken(newLine, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(newLine, NS_OK, state->tokenDeque, state->tokenAllocator);
}
}
}
-void nsExpatTokenizer::HandleUnparsedEntityDecl(void *userData,
- const XML_Char *entityName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId,
- const XML_Char *notationName) {
- NS_NOTYETIMPLEMENTED("Error: nsExpatTokenizer::HandleUnparsedEntityDecl() not yet implemented.");
+void Tokenizer_HandleUnparsedEntityDecl(void *userData,
+ const XML_Char *entityName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId,
+ const XML_Char *notationName) {
+ NS_NOTYETIMPLEMENTED("Error: Tokenizer_HandleUnparsedEntityDecl() not yet implemented.");
}
@@ -832,19 +832,19 @@ nsresult nsExpatTokenizer::LoadStream(nsIInputStream* in,
return res;
}
-void nsExpatTokenizer::HandleNotationDecl(void *userData,
- const XML_Char *notationName,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId){
- NS_NOTYETIMPLEMENTED("Error: nsExpatTokenizer::HandleNotationDecl() not yet implemented.");
+void Tokenizer_HandleNotationDecl(void *userData,
+ const XML_Char *notationName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId){
+ NS_NOTYETIMPLEMENTED("Error: Tokenizer_HandleNotationDecl() not yet implemented.");
}
-int nsExpatTokenizer::HandleExternalEntityRef(XML_Parser parser,
- const XML_Char *openEntityNames,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId)
+int Tokenizer_HandleExternalEntityRef(XML_Parser parser,
+ const XML_Char *openEntityNames,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId)
{
int result = PR_TRUE;
@@ -855,12 +855,12 @@ int nsExpatTokenizer::HandleExternalEntityRef(XML_Parser parser,
nsAutoString baseURL( (const PRUnichar*) base );
nsAutoString absURL;
- nsresult rv = OpenInputStream(urlSpec, baseURL, getter_AddRefs(in), &absURL);
+ nsresult rv = nsExpatTokenizer::OpenInputStream(urlSpec, baseURL, getter_AddRefs(in), &absURL);
if (NS_SUCCEEDED(rv) && nsnull != in) {
PRUint32 retLen = 0;
PRUnichar *uniBuf = nsnull;
- rv = LoadStream(in, uniBuf, retLen);
+ rv = nsExpatTokenizer::LoadStream(in, uniBuf, retLen);
// Pass the buffer to expat for parsing
if (NS_SUCCEEDED(rv) && nsnull != uniBuf) {
@@ -882,37 +882,37 @@ int nsExpatTokenizer::HandleExternalEntityRef(XML_Parser parser,
}
#else /* ! XML_DTD */
- NS_NOTYETIMPLEMENTED("Error: nsExpatTokenizer::HandleExternalEntityRef() not yet implemented.");
+ NS_NOTYETIMPLEMENTED("Error: Tokenizer_HandleExternalEntityRef() not yet implemented.");
#endif /* XML_DTD */
return result;
}
-int nsExpatTokenizer::HandleUnknownEncoding(void *encodingHandlerData,
- const XML_Char *name,
- XML_Encoding *info) {
- NS_NOTYETIMPLEMENTED("Error: nsExpatTokenizer::HandleUnknownEncoding() not yet implemented.");
+int Tokenizer_HandleUnknownEncoding(void *encodingHandlerData,
+ const XML_Char *name,
+ XML_Encoding *info) {
+ NS_NOTYETIMPLEMENTED("Error: Tokenizer_HandleUnknownEncoding() not yet implemented.");
int result=0;
return result;
}
-void nsExpatTokenizer::HandleStartDoctypeDecl(void *userData,
- const XML_Char *doctypeName)
+void Tokenizer_HandleStartDoctypeDecl(void *userData,
+ const XML_Char *doctypeName)
{
XMLParserState* state = (XMLParserState*) userData;
state->indoctype = PR_TRUE;
state->doctypeText.Assign(NS_LITERAL_STRING("doctypeText.AppendWithConversion(">");
CToken* token = state->tokenAllocator->CreateTokenOfType(eToken_doctypeDecl, eHTMLTag_unknown, state->doctypeText);
if (token) {
- AddToken(token, NS_OK, state->tokenDeque, state->tokenAllocator);
+ nsExpatTokenizer::AddToken(token, NS_OK, state->tokenDeque, state->tokenAllocator);
}
state->indoctype = PR_FALSE;
state->doctypeText.Truncate();
diff --git a/parser/htmlparser/src/nsExpatTokenizer.h b/parser/htmlparser/src/nsExpatTokenizer.h
index fa8fd39e33f..d5047e28041 100644
--- a/parser/htmlparser/src/nsExpatTokenizer.h
+++ b/parser/htmlparser/src/nsExpatTokenizer.h
@@ -18,12 +18,7 @@
* Rights Reserved.
*
* Contributor(s):
- * This Original Code has been modified by IBM Corporation. Modifications made by IBM
- * described herein are Copyright (c) International Business Machines Corporation, 2000.
- * Modifications to Mozilla code or documentation identified per MPL Section 3.3
- *
- * Date Modified by Description of modification
- * 04/20/2000 IBM Corp. OS/2 VisualAge build.
+ * IBM Corp.
*/
@@ -64,6 +59,46 @@ typedef struct _XMLParserState XMLParserState;
#pragma warning( disable : 4275 )
#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+ /* The callback handlers that get called from the expat parser */
+ void Tokenizer_HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts);
+ void Tokenizer_HandleEndElement(void *userData, const XML_Char *name);
+ void Tokenizer_HandleCharacterData(void *userData, const XML_Char *s, int len);
+ void Tokenizer_HandleComment(void *userData, const XML_Char *name);
+ void Tokenizer_HandleProcessingInstruction(void *userData,
+ const XML_Char *target,
+ const XML_Char *data);
+ void Tokenizer_HandleDefault(void *userData, const XML_Char *s, int len);
+ void Tokenizer_HandleStartCdataSection(void *userData);
+ void Tokenizer_HandleEndCdataSection(void *userData);
+ void Tokenizer_HandleUnparsedEntityDecl(void *userData,
+ const XML_Char *entityName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId,
+ const XML_Char *notationName);
+ void Tokenizer_HandleNotationDecl(void *userData,
+ const XML_Char *notationName,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId);
+ int Tokenizer_HandleExternalEntityRef(XML_Parser parser,
+ const XML_Char *openEntityNames,
+ const XML_Char *base,
+ const XML_Char *systemId,
+ const XML_Char *publicId);
+ int Tokenizer_HandleUnknownEncoding(void *encodingHandlerData,
+ const XML_Char *name,
+ XML_Encoding *info);
+ void Tokenizer_HandleStartDoctypeDecl(void *userData,
+ const XML_Char *doctypeName);
+ void Tokenizer_HandleEndDoctypeDecl(void *userData);
+#ifdef __cplusplus
+}
+#endif
+
CLASS_EXPORT_HTMLPARS nsExpatTokenizer : public nsHTMLTokenizer {
public:
nsExpatTokenizer(nsString* aURL = nsnull);
@@ -116,38 +151,38 @@ protected:
PRUint32 &retLen);
/* The callback handlers that get called from the expat parser */
- static void PR_CALLBACK HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts);
- static void PR_CALLBACK HandleEndElement(void *userData, const XML_Char *name);
- static void PR_CALLBACK HandleCharacterData(void *userData, const XML_Char *s, int len);
- static void PR_CALLBACK HandleComment(void *userData, const XML_Char *name);
- static void PR_CALLBACK HandleProcessingInstruction(void *userData,
+ friend void Tokenizer_HandleStartElement(void *userData, const XML_Char *name, const XML_Char **atts);
+ friend void Tokenizer_HandleEndElement(void *userData, const XML_Char *name);
+ friend void Tokenizer_HandleCharacterData(void *userData, const XML_Char *s, int len);
+ friend void Tokenizer_HandleComment(void *userData, const XML_Char *name);
+ friend void Tokenizer_HandleProcessingInstruction(void *userData,
const XML_Char *target,
const XML_Char *data);
- static void PR_CALLBACK HandleDefault(void *userData, const XML_Char *s, int len);
- static void PR_CALLBACK HandleStartCdataSection(void *userData);
- static void PR_CALLBACK HandleEndCdataSection(void *userData);
- static void PR_CALLBACK HandleUnparsedEntityDecl(void *userData,
+ friend void Tokenizer_HandleDefault(void *userData, const XML_Char *s, int len);
+ friend void Tokenizer_HandleStartCdataSection(void *userData);
+ friend void Tokenizer_HandleEndCdataSection(void *userData);
+ friend void Tokenizer_HandleUnparsedEntityDecl(void *userData,
const XML_Char *entityName,
const XML_Char *base,
const XML_Char *systemId,
const XML_Char *publicId,
const XML_Char *notationName);
- static void PR_CALLBACK HandleNotationDecl(void *userData,
+ friend void Tokenizer_HandleNotationDecl(void *userData,
const XML_Char *notationName,
const XML_Char *base,
const XML_Char *systemId,
const XML_Char *publicId);
- static int PR_CALLBACK HandleExternalEntityRef(XML_Parser parser,
+ friend int Tokenizer_HandleExternalEntityRef(XML_Parser parser,
const XML_Char *openEntityNames,
const XML_Char *base,
const XML_Char *systemId,
const XML_Char *publicId);
- static int PR_CALLBACK HandleUnknownEncoding(void *encodingHandlerData,
+ friend int Tokenizer_HandleUnknownEncoding(void *encodingHandlerData,
const XML_Char *name,
XML_Encoding *info);
- static void PR_CALLBACK HandleStartDoctypeDecl(void *userData,
+ friend void Tokenizer_HandleStartDoctypeDecl(void *userData,
const XML_Char *doctypeName);
- static void PR_CALLBACK HandleEndDoctypeDecl(void *userData);
+ friend void Tokenizer_HandleEndDoctypeDecl(void *userData);
XML_Parser mExpatParser;
PRUint32 mBytesParsed;
@@ -155,6 +190,7 @@ protected:
XMLParserState* mState;
};
+
extern NS_HTMLPARS nsresult NS_New_Expat_Tokenizer(nsITokenizer** aInstancePtrResult);
#endif