diff --git a/mozilla/htmlparser/src/nsIParser.h b/mozilla/htmlparser/src/nsIParser.h index 018c0b3a621..cbe115cd95c 100644 --- a/mozilla/htmlparser/src/nsIParser.h +++ b/mozilla/htmlparser/src/nsIParser.h @@ -123,7 +123,7 @@ class nsIParser : public nsISupports { ******************************************************************************************/ virtual PRBool EnableParser(PRBool aState) = 0; virtual nsresult Parse(nsIURL* aURL,nsIStreamObserver* aListener = nsnull,PRBool aEnableVerify=PR_FALSE) = 0; - virtual nsresult Parse(fstream& aStream,PRBool aEnableVerify=PR_FALSE) = 0; + virtual nsresult Parse(nsIInputStream& aStream, PRBool aEnableVerify=PR_FALSE) = 0; virtual nsresult Parse(nsString& aSourceBuffer,void* aKey,const nsString& aContentType,PRBool aEnableVerify,PRBool aLastCall) = 0; //virtual PRBool IsValid(nsString& aSourceBuffer,const nsString& aContentTypeaLastCall) = 0; diff --git a/mozilla/htmlparser/src/nsParser.cpp b/mozilla/htmlparser/src/nsParser.cpp index 2bc9e3d8a28..1e2acc8f3a7 100644 --- a/mozilla/htmlparser/src/nsParser.cpp +++ b/mozilla/htmlparser/src/nsParser.cpp @@ -603,7 +603,7 @@ nsresult nsParser::Parse(nsIURL* aURL,nsIStreamObserver* aListener,PRBool aVerif * @param aStream is the i/o source * @return error code -- 0 if ok, non-zero if error. */ -nsresult nsParser::Parse(fstream& aStream,PRBool aVerifyEnabled){ +nsresult nsParser::Parse(nsIInputStream& aStream,PRBool aVerifyEnabled){ mDTDVerification=aVerifyEnabled; nsresult result=NS_ERROR_OUT_OF_MEMORY; @@ -638,7 +638,8 @@ nsresult nsParser::Parse(fstream& aStream,PRBool aVerifyEnabled){ nsParser::gHackMetaCharset = ""; // XXX end of meta tag charset hack - CParserContext* pc=new CParserContext(new nsScanner(theUnknownFilename,aStream, charset, charsetSource,PR_FALSE),&aStream,0); + nsInputStream input(&aStream); + CParserContext* pc=new CParserContext(new nsScanner(theUnknownFilename, input, charset, charsetSource,PR_FALSE),&aStream,0); if(pc) { PushContext(*pc); pc->mSourceType=kHTMLTextContentType; diff --git a/mozilla/htmlparser/src/nsParser.h b/mozilla/htmlparser/src/nsParser.h index 76bb00201b5..fecff0c3d12 100644 --- a/mozilla/htmlparser/src/nsParser.h +++ b/mozilla/htmlparser/src/nsParser.h @@ -161,7 +161,7 @@ friend class CTokenHandler; * @param aStream is the i/o source * @return TRUE if all went well -- FALSE otherwise */ - virtual nsresult Parse(fstream& aStream,PRBool aEnableVerify=PR_FALSE); + virtual nsresult Parse(nsIInputStream& aStream,PRBool aEnableVerify=PR_FALSE); /** * @update gess5/11/98 diff --git a/mozilla/htmlparser/src/nsScanner.cpp b/mozilla/htmlparser/src/nsScanner.cpp index 1aaf5e8aee4..253e0eedc45 100644 --- a/mozilla/htmlparser/src/nsScanner.cpp +++ b/mozilla/htmlparser/src/nsScanner.cpp @@ -24,6 +24,7 @@ #include "nsIServiceManager.h" #include "nsICharsetConverterManager.h" #include "nsICharsetAlias.h" +#include "nsFileSpec.h" const char* kBadHTMLText="

Oops...

You just tried to read a non-existent document:
"; @@ -53,7 +54,7 @@ nsScanner::nsScanner(nsString& anHTMLString, const nsString& aCharset, nsCharset mOwnsStream=PR_FALSE; mOffset=0; mMarkPos=-1; - mFileStream=0; + mInputStream=0; mUnicodeDecoder = 0; mCharset = ""; mCharsetSource = kCharsetUninitialized; @@ -77,18 +78,9 @@ nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& a mMarkPos=-1; mTotalRead=0; mOwnsStream=aCreateStream; - mFileStream=0; + mInputStream=0; if(aCreateStream) { - char buffer[513]; - aFilename.ToCString(buffer,sizeof(buffer)-1); - #if defined(HAVE_IOS_BINARY) || !defined(XP_UNIX) - /* XXX: HAVE_IOS_BINARY needs to be set for mac & win */ - mFileStream=new fstream(buffer,ios::in|ios::binary); - #elif defined(HAVE_IOS_BIN) - mFileStream=new fstream(buffer,ios::in|ios::bin); - #else - mFileStream=new fstream(buffer,ios::in); - #endif + mInputStream = new nsInputFileStream(nsFileSpec(aFilename)); } //if mUnicodeDecoder = 0; mCharset = ""; @@ -106,7 +98,7 @@ nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& a * @param aFilename -- * @return */ -nsScanner::nsScanner(nsString& aFilename,fstream& aStream,const nsString& aCharset, nsCharsetSource aSource, PRBool assumeOwnership) : +nsScanner::nsScanner(nsString& aFilename,nsInputStream& aStream,const nsString& aCharset, nsCharsetSource aSource, PRBool assumeOwnership) : mBuffer(""), mFilename(aFilename) { mIncremental=PR_TRUE; @@ -114,7 +106,7 @@ nsScanner::nsScanner(nsString& aFilename,fstream& aStream,const nsString& aChars mMarkPos=-1; mTotalRead=0; mOwnsStream=assumeOwnership; - mFileStream=&aStream; + mInputStream=&aStream; mUnicodeDecoder = 0; mCharset = ""; mCharsetSource = kCharsetUninitialized; @@ -185,12 +177,12 @@ nsresult nsScanner::SetDocumentCharset(const nsString& aCharset , nsCharsetSourc * @return */ nsScanner::~nsScanner() { - if(mFileStream) { - mFileStream->close(); + if(mInputStream) { + mInputStream->close(); if(mOwnsStream) - delete mFileStream; + delete mInputStream; } - mFileStream=0; + mInputStream=0; NS_IF_RELEASE(mUnicodeDecoder); } @@ -285,7 +277,7 @@ PRBool nsScanner::Append(const PRUnichar* aBuffer, PRUint32 aLen){ nsresult nsScanner::FillBuffer(void) { nsresult result=NS_OK; - if(!mFileStream) { + if(!mInputStream) { //This is DEBUG code!!!!!! XXX DEBUG XXX //If you're here, it means someone tried to load a //non-existent document. So as a favor, we emit a @@ -301,9 +293,8 @@ nsresult nsScanner::FillBuffer(void) { char buf[kBufsize+1]; buf[kBufsize]=0; - if(mFileStream) { - mFileStream->read(buf,kBufsize); - numread=mFileStream->gcount(); + if(mInputStream) { + numread = mInputStream->read(buf, kBufsize); if (0 == numread) { return kEOF; } diff --git a/mozilla/htmlparser/src/nsScanner.h b/mozilla/htmlparser/src/nsScanner.h index 7fb72c89db8..993bd33393f 100644 --- a/mozilla/htmlparser/src/nsScanner.h +++ b/mozilla/htmlparser/src/nsScanner.h @@ -36,7 +36,7 @@ #include "nsIParser.h" #include "prtypes.h" #include "nsIUnicodeDecoder.h" -#include +#include "nsFileStream.h" typedef enum { @@ -86,7 +86,7 @@ class nsScanner { * @param aMode represents the parser mode (nav, other) * @return */ - nsScanner(nsString& aFilename,fstream& aStream, const nsString& aCharset, nsCharsetSource aSource,PRBool assumeOwnership=PR_TRUE); + nsScanner(nsString& aFilename, nsInputStream& aStream, const nsString& aCharset, nsCharsetSource aSource,PRBool assumeOwnership=PR_TRUE); ~nsScanner(); @@ -304,7 +304,7 @@ class nsScanner { */ nsresult FillBuffer(void); - fstream* mFileStream; + nsInputStream* mInputStream; nsString mBuffer; nsString mFilename; PRUint32 mOffset; diff --git a/mozilla/parser/htmlparser/src/nsIParser.h b/mozilla/parser/htmlparser/src/nsIParser.h index 018c0b3a621..cbe115cd95c 100644 --- a/mozilla/parser/htmlparser/src/nsIParser.h +++ b/mozilla/parser/htmlparser/src/nsIParser.h @@ -123,7 +123,7 @@ class nsIParser : public nsISupports { ******************************************************************************************/ virtual PRBool EnableParser(PRBool aState) = 0; virtual nsresult Parse(nsIURL* aURL,nsIStreamObserver* aListener = nsnull,PRBool aEnableVerify=PR_FALSE) = 0; - virtual nsresult Parse(fstream& aStream,PRBool aEnableVerify=PR_FALSE) = 0; + virtual nsresult Parse(nsIInputStream& aStream, PRBool aEnableVerify=PR_FALSE) = 0; virtual nsresult Parse(nsString& aSourceBuffer,void* aKey,const nsString& aContentType,PRBool aEnableVerify,PRBool aLastCall) = 0; //virtual PRBool IsValid(nsString& aSourceBuffer,const nsString& aContentTypeaLastCall) = 0; diff --git a/mozilla/parser/htmlparser/src/nsParser.cpp b/mozilla/parser/htmlparser/src/nsParser.cpp index 2bc9e3d8a28..1e2acc8f3a7 100644 --- a/mozilla/parser/htmlparser/src/nsParser.cpp +++ b/mozilla/parser/htmlparser/src/nsParser.cpp @@ -603,7 +603,7 @@ nsresult nsParser::Parse(nsIURL* aURL,nsIStreamObserver* aListener,PRBool aVerif * @param aStream is the i/o source * @return error code -- 0 if ok, non-zero if error. */ -nsresult nsParser::Parse(fstream& aStream,PRBool aVerifyEnabled){ +nsresult nsParser::Parse(nsIInputStream& aStream,PRBool aVerifyEnabled){ mDTDVerification=aVerifyEnabled; nsresult result=NS_ERROR_OUT_OF_MEMORY; @@ -638,7 +638,8 @@ nsresult nsParser::Parse(fstream& aStream,PRBool aVerifyEnabled){ nsParser::gHackMetaCharset = ""; // XXX end of meta tag charset hack - CParserContext* pc=new CParserContext(new nsScanner(theUnknownFilename,aStream, charset, charsetSource,PR_FALSE),&aStream,0); + nsInputStream input(&aStream); + CParserContext* pc=new CParserContext(new nsScanner(theUnknownFilename, input, charset, charsetSource,PR_FALSE),&aStream,0); if(pc) { PushContext(*pc); pc->mSourceType=kHTMLTextContentType; diff --git a/mozilla/parser/htmlparser/src/nsParser.h b/mozilla/parser/htmlparser/src/nsParser.h index 76bb00201b5..fecff0c3d12 100644 --- a/mozilla/parser/htmlparser/src/nsParser.h +++ b/mozilla/parser/htmlparser/src/nsParser.h @@ -161,7 +161,7 @@ friend class CTokenHandler; * @param aStream is the i/o source * @return TRUE if all went well -- FALSE otherwise */ - virtual nsresult Parse(fstream& aStream,PRBool aEnableVerify=PR_FALSE); + virtual nsresult Parse(nsIInputStream& aStream,PRBool aEnableVerify=PR_FALSE); /** * @update gess5/11/98 diff --git a/mozilla/parser/htmlparser/src/nsScanner.cpp b/mozilla/parser/htmlparser/src/nsScanner.cpp index 1aaf5e8aee4..253e0eedc45 100644 --- a/mozilla/parser/htmlparser/src/nsScanner.cpp +++ b/mozilla/parser/htmlparser/src/nsScanner.cpp @@ -24,6 +24,7 @@ #include "nsIServiceManager.h" #include "nsICharsetConverterManager.h" #include "nsICharsetAlias.h" +#include "nsFileSpec.h" const char* kBadHTMLText="

Oops...

You just tried to read a non-existent document:
"; @@ -53,7 +54,7 @@ nsScanner::nsScanner(nsString& anHTMLString, const nsString& aCharset, nsCharset mOwnsStream=PR_FALSE; mOffset=0; mMarkPos=-1; - mFileStream=0; + mInputStream=0; mUnicodeDecoder = 0; mCharset = ""; mCharsetSource = kCharsetUninitialized; @@ -77,18 +78,9 @@ nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& a mMarkPos=-1; mTotalRead=0; mOwnsStream=aCreateStream; - mFileStream=0; + mInputStream=0; if(aCreateStream) { - char buffer[513]; - aFilename.ToCString(buffer,sizeof(buffer)-1); - #if defined(HAVE_IOS_BINARY) || !defined(XP_UNIX) - /* XXX: HAVE_IOS_BINARY needs to be set for mac & win */ - mFileStream=new fstream(buffer,ios::in|ios::binary); - #elif defined(HAVE_IOS_BIN) - mFileStream=new fstream(buffer,ios::in|ios::bin); - #else - mFileStream=new fstream(buffer,ios::in); - #endif + mInputStream = new nsInputFileStream(nsFileSpec(aFilename)); } //if mUnicodeDecoder = 0; mCharset = ""; @@ -106,7 +98,7 @@ nsScanner::nsScanner(nsString& aFilename,PRBool aCreateStream, const nsString& a * @param aFilename -- * @return */ -nsScanner::nsScanner(nsString& aFilename,fstream& aStream,const nsString& aCharset, nsCharsetSource aSource, PRBool assumeOwnership) : +nsScanner::nsScanner(nsString& aFilename,nsInputStream& aStream,const nsString& aCharset, nsCharsetSource aSource, PRBool assumeOwnership) : mBuffer(""), mFilename(aFilename) { mIncremental=PR_TRUE; @@ -114,7 +106,7 @@ nsScanner::nsScanner(nsString& aFilename,fstream& aStream,const nsString& aChars mMarkPos=-1; mTotalRead=0; mOwnsStream=assumeOwnership; - mFileStream=&aStream; + mInputStream=&aStream; mUnicodeDecoder = 0; mCharset = ""; mCharsetSource = kCharsetUninitialized; @@ -185,12 +177,12 @@ nsresult nsScanner::SetDocumentCharset(const nsString& aCharset , nsCharsetSourc * @return */ nsScanner::~nsScanner() { - if(mFileStream) { - mFileStream->close(); + if(mInputStream) { + mInputStream->close(); if(mOwnsStream) - delete mFileStream; + delete mInputStream; } - mFileStream=0; + mInputStream=0; NS_IF_RELEASE(mUnicodeDecoder); } @@ -285,7 +277,7 @@ PRBool nsScanner::Append(const PRUnichar* aBuffer, PRUint32 aLen){ nsresult nsScanner::FillBuffer(void) { nsresult result=NS_OK; - if(!mFileStream) { + if(!mInputStream) { //This is DEBUG code!!!!!! XXX DEBUG XXX //If you're here, it means someone tried to load a //non-existent document. So as a favor, we emit a @@ -301,9 +293,8 @@ nsresult nsScanner::FillBuffer(void) { char buf[kBufsize+1]; buf[kBufsize]=0; - if(mFileStream) { - mFileStream->read(buf,kBufsize); - numread=mFileStream->gcount(); + if(mInputStream) { + numread = mInputStream->read(buf, kBufsize); if (0 == numread) { return kEOF; } diff --git a/mozilla/parser/htmlparser/src/nsScanner.h b/mozilla/parser/htmlparser/src/nsScanner.h index 7fb72c89db8..993bd33393f 100644 --- a/mozilla/parser/htmlparser/src/nsScanner.h +++ b/mozilla/parser/htmlparser/src/nsScanner.h @@ -36,7 +36,7 @@ #include "nsIParser.h" #include "prtypes.h" #include "nsIUnicodeDecoder.h" -#include +#include "nsFileStream.h" typedef enum { @@ -86,7 +86,7 @@ class nsScanner { * @param aMode represents the parser mode (nav, other) * @return */ - nsScanner(nsString& aFilename,fstream& aStream, const nsString& aCharset, nsCharsetSource aSource,PRBool assumeOwnership=PR_TRUE); + nsScanner(nsString& aFilename, nsInputStream& aStream, const nsString& aCharset, nsCharsetSource aSource,PRBool assumeOwnership=PR_TRUE); ~nsScanner(); @@ -304,7 +304,7 @@ class nsScanner { */ nsresult FillBuffer(void); - fstream* mFileStream; + nsInputStream* mInputStream; nsString mBuffer; nsString mFilename; PRUint32 mOffset;