From 9fc340d07fcddefac49eb393bf3a1d35a6c516e3 Mon Sep 17 00:00:00 2001 From: "scc%mozilla.org" Date: Sat, 2 Sep 2000 20:53:31 +0000 Subject: [PATCH] making all string construction explicit; plus (now that the DOM APIs are turned on and you can no longer build without NEW_STRING_APIS) chopping out |#ifdef|ed code git-svn-id: svn://10.0.0.236/trunk@78027 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/string/obsolete/nsStr.h | 28 +- mozilla/string/obsolete/nsString.cpp | 393 ---------------- mozilla/string/obsolete/nsString.h | 376 +-------------- mozilla/string/obsolete/nsString2.cpp | 494 +------------------- mozilla/string/obsolete/nsString2.h | 395 +--------------- mozilla/xpcom/ds/nsStr.h | 28 +- mozilla/xpcom/ds/nsString.cpp | 393 ---------------- mozilla/xpcom/ds/nsString.h | 376 +-------------- mozilla/xpcom/ds/nsString2.cpp | 494 +------------------- mozilla/xpcom/ds/nsString2.h | 395 +--------------- mozilla/xpcom/string/obsolete/nsStr.h | 28 +- mozilla/xpcom/string/obsolete/nsString.cpp | 393 ---------------- mozilla/xpcom/string/obsolete/nsString.h | 376 +-------------- mozilla/xpcom/string/obsolete/nsString2.cpp | 494 +------------------- mozilla/xpcom/string/obsolete/nsString2.h | 395 +--------------- 15 files changed, 93 insertions(+), 4965 deletions(-) diff --git a/mozilla/string/obsolete/nsStr.h b/mozilla/string/obsolete/nsStr.h index d876eee8b70..7c58d84ac33 100644 --- a/mozilla/string/obsolete/nsStr.h +++ b/mozilla/string/obsolete/nsStr.h @@ -17,22 +17,11 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - /*********************************************************************** MODULE NOTES: @@ -431,21 +420,6 @@ struct NS_COM nsStr { */ static PRUint32 HashCode(const nsStr& aDest); -#ifndef NEW_STRING_APIS - static void Append(nsStr& aDest,const nsStr& aSource,PRUint32 anOffset,PRInt32 aCount) { - StrAppend(aDest, aSource, anOffset, aCount); - } - static void Assign(nsStr& aDest,const nsStr& aSource,PRUint32 anOffset,PRInt32 aCount) { - StrAssign(aDest, aSource, anOffset, aCount); - } - static void Insert( nsStr& aDest,PRUint32 aDestOffset,const nsStr& aSource,PRUint32 aSrcOffset,PRInt32 aCount) { - StrInsert(aDest, aDestOffset, aSource, aSrcOffset, aCount); - } - static PRInt32 Compare(const nsStr& aDest,const nsStr& aSource,PRInt32 aCount,PRBool aIgnoreCase) { - return StrCompare(aDest, aSource, aCount, aIgnoreCase); - } -#endif - #ifdef NS_STR_STATS /** * Prints an nsStr. If truncate is true, the string is only printed up to diff --git a/mozilla/string/obsolete/nsString.cpp b/mozilla/string/obsolete/nsString.cpp index 5fcee41354b..ff3129d4c0e 100644 --- a/mozilla/string/obsolete/nsString.cpp +++ b/mozilla/string/obsolete/nsString.cpp @@ -70,12 +70,10 @@ nsCString::nsCString() { Initialize(*this,eOneByte); } -#ifdef NEW_STRING_APIS nsCString::nsCString(const char* aCString) { Initialize(*this,eOneByte); Assign(aCString); } -#endif /** * This constructor accepts an ascii string @@ -137,7 +135,6 @@ nsCString::~nsCString() { Destroy(*this); } -#ifdef NEW_STRING_APIS const char* nsCString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const { switch ( aRequest ) { case kFirstFragment: @@ -172,7 +169,6 @@ nsCString::nsCString( const nsAReadableCString& aReadable ) { Initialize(*this,eOneByte); Assign(aReadable); } -#endif void nsCString::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const { if (aResult) { @@ -232,35 +228,6 @@ const char* nsCString::GetBuffer(void) const { return mStr; } -#ifndef NEW_STRING_APIS -/** - * Get nth character. - */ -PRUnichar nsCString::operator[](PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get nth character. - */ -PRUnichar nsCString::CharAt(PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get 1st character. - */ -PRUnichar nsCString::First(void) const{ - return GetCharAt(*this,0); -} - -/** - * Get last character. - */ -PRUnichar nsCString::Last(void) const{ - return (char)GetCharAt(*this,mLength-1); -} -#endif // !defined(NEW_STRING_APIS) /** * set a char inside this string at given index @@ -281,57 +248,6 @@ PRBool nsCString::SetCharAt(PRUnichar aChar,PRUint32 anIndex){ /********************************************************* append (operator+) METHODS.... *********************************************************/ -#ifndef NEW_STRING_APIS -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeCStr nsCString::operator+(const nsCString& aString){ - nsCString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeCStr(temp); -} - - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aCString is a ptr to cstring to be added to this - * @return newly created subsumable string - */ -nsSubsumeCStr nsCString::operator+(const char* aCString) { - nsCString temp(*this); - temp.Append(aCString); - return nsSubsumeCStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return newly created subsumable string - */ -nsSubsumeCStr nsCString::operator+(PRUnichar aChar) { - nsCString temp(*this); - temp.Append(aChar); - return nsSubsumeCStr(temp); -} - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return newly created string - */ -nsSubsumeCStr nsCString::operator+(char aChar) { - nsCString temp(*this); - temp.Append(aChar); - return nsSubsumeCStr(temp); -} -#endif // !defined(NEW_STRING_APIS) /********************************************************************** Lexomorphic transforms... @@ -843,73 +759,6 @@ PRInt32 nsCString::ToInteger(PRInt32* anErrorCode,PRUint32 aRadix) const { String manipulation methods... *********************************************************************/ -#ifndef NEW_STRING_APIS -/** - * assign given nsStr (or derivative) to this one - * @update gess 01/04/99 - * @param aString: string to be appended - * @return this - */ -nsCString& nsCString::Assign(const nsStr& aString,PRInt32 aCount) { - if(this!=&aString){ - nsStr::Truncate(*this,0); - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - StrAssign(*this,aString,0,aCount); - } - return *this; -} - -/** - * assign given char* to this string - * @update gess 01/04/99 - * @param aCString: buffer to be assigned to this - * @param aCount -- length of given buffer or -1 if you want me to compute length. - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return this - */ -nsCString& nsCString::Assign(const char* aCString,PRInt32 aCount) { - nsStr::Truncate(*this,0); - if(aCString){ - Append(aCString,aCount); - } - return *this; -} - -/** - * assign given char to this string - * @update gess 01/04/99 - * @param aChar: char to be assignd to this - * @return this - */ -nsCString& nsCString::Assign(char aChar) { - nsStr::Truncate(*this,0); - return Append(aChar); -} - -/** - * WARNING! THIS IS A VERY SPECIAL METHOD. - * This method "steals" the contents of aSource and hands it to aDest. - * Ordinarily a copy is made, but not in this version. - * @update gess10/30/98 - * @param - * @return - */ -#if defined(AIX) || defined(XP_OS2_VACPP) -nsCString& nsCString::operator=(const nsSubsumeCStr& aSubsumeString) { - nsSubsumeCStr temp(aSubsumeString); // a temp is needed for the AIX and VAC++ compiler - CSubsume(*this,temp); -#else -nsCString& nsCString::operator=(nsSubsumeCStr& aSubsumeString) { - CSubsume(*this,aSubsumeString); -#endif // AIX || XP_OS2_VACPP - return *this; -} -#endif /** * assign given unichar* to this string @@ -952,7 +801,6 @@ void nsCString::AssignWithConversion( const nsString& aString ) { AssignWithConversion(aString.GetUnicode(), aString.Length()); } -#ifdef NEW_STRING_APIS void nsCString::AssignWithConversion( const nsAReadableString& aString ) { nsStr::Truncate(*this,0); PRInt32 count = aString.Length(); @@ -976,9 +824,7 @@ void nsCString::AssignWithConversion( const nsAReadableString& aString ) { } } } -#endif -#ifdef NEW_STRING_APIS void nsCString::AppendWithConversion( const nsAReadableString& aString ) { PRInt32 count = aString.Length(); @@ -1001,7 +847,6 @@ void nsCString::AppendWithConversion( const nsAReadableString& aString ) { } } } -#endif /** * assign given unichar to this string @@ -1014,7 +859,6 @@ void nsCString::AssignWithConversion(PRUnichar aChar) { AppendWithConversion(aChar); } -#ifdef NEW_STRING_APIS void nsCString::do_AppendFromReadable( const nsAReadableCString& aReadable ) { if ( SameImplementation( NS_STATIC_CAST(const nsAReadableCString&, *this), aReadable) ) @@ -1022,87 +866,7 @@ void nsCString::do_AppendFromReadable( const nsAReadableCString& aReadable ) else nsAWritableCString::do_AppendFromReadable(aReadable); } -#endif -#ifndef NEW_STRING_APIS -/** - * append given string to this string - * @update gess 01/04/99 - * @param aString : string to be appended to this - * @return this - */ -nsCString& nsCString::Append(const nsCString& aString,PRInt32 aCount) { - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - if(0(const nsStr& S) const {return PRBool(Compare(S)>0);} -PRBool nsCString::operator>(const char* s) const {return PRBool(Compare(nsCAutoString(s))>0);} -//PRBool nsCString::operator>(const PRUnichar* s) const {return PRBool(Compare(s)>0);} - -PRBool nsCString::operator<=(const nsStr& S) const {return PRBool(Compare(S)<=0);} -PRBool nsCString::operator<=(const char* s) const {return PRBool(Compare(nsCAutoString(s))<=0);} -//PRBool nsCString::operator<=(const PRUnichar* s) const {return PRBool(Compare(s)<=0);} - -PRBool nsCString::operator>=(const nsStr& S) const {return PRBool(Compare(S)>=0);} -PRBool nsCString::operator>=(const char* s) const {return PRBool(Compare(nsCAutoString(s))>=0);} -//PRBool nsCString::operator>=(const PRUnichar* s) const {return PRBool(Compare(s)>=0);} -#endif - -#ifndef NEW_STRING_APIS -PRBool nsCString::EqualsIgnoreCase(const nsStr& aString) const { - return Equals(aString,PR_TRUE); -} -#endif - PRBool nsCString::EqualsIgnoreCase(const char* aString,PRInt32 aLength) const { return EqualsWithConversion(aString,PR_TRUE,aLength); } @@ -1734,22 +1359,6 @@ PRBool nsCString::EqualsIgnoreCase(const PRUnichar* aString,PRInt32 aLength) con } -#ifndef NEW_STRING_APIS -/** - * Compare this to given string; note that we compare full strings here. - * - * @update gess 01/04/99 - * @param aString is the other nsCString to be compared to - * @param aIgnoreCase tells us how to treat case - * @param aCount tells us how many chars to test; -1 implies full length - * @return TRUE if equal - */ -PRBool nsCString::Equals(const nsStr& aString,PRBool aIgnoreCase,PRInt32 aCount) const { - PRInt32 theAnswer=nsStr::StrCompare(*this,aString,aCount,aIgnoreCase); - PRBool result=PRBool(0==theAnswer); - return result; -} -#endif /** * Compare this to given string; note that we compare full strings here. @@ -1935,7 +1544,6 @@ void nsCString::DebugDump(void) const { //---------------------------------------------------------------------- -#ifdef NEW_STRING_APIS NS_ConvertUCS2toUTF8::NS_ConvertUCS2toUTF8( const nsAReadableString& aString ) { nsReadingIterator start(aString.BeginReading()); @@ -1947,7 +1555,6 @@ NS_ConvertUCS2toUTF8::NS_ConvertUCS2toUTF8( const nsAReadableString& aString ) start += start.size_forward(); } } -#endif void NS_ConvertUCS2toUTF8::Append( const PRUnichar* aString, PRUint32 aLength ) diff --git a/mozilla/string/obsolete/nsString.h b/mozilla/string/obsolete/nsString.h index ca40d024a8a..d928602d75c 100644 --- a/mozilla/string/obsolete/nsString.h +++ b/mozilla/string/obsolete/nsString.h @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -38,15 +36,6 @@ 4. Subsumable strings ***********************************************************************/ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - #ifndef _nsCString_ #define _nsCString_ @@ -57,45 +46,19 @@ #include "nsStr.h" #include "nsIAtom.h" -#ifdef NEW_STRING_APIS #include "nsAWritableString.h" -#else - #define NS_LITERAL_STRING(s) (s) - #define NS_LITERAL_CSTRING(s) (s) - - #define NS_DEF_DERIVED_STRING_OPERATOR_PLUS(_StringT, _CharT) - #define NS_DEF_2_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T, _CharT) - - inline - char - nsLiteralChar( char c ) - { - return c; - } - - inline - PRUnichar - nsLiteralPRUnichar( PRUnichar c ) - { - return c; - } -#endif class NS_COM nsSubsumeCStr; class NS_COM nsCString : -#ifdef NEW_STRING_APIS public nsAWritableCString, -#endif public nsStr { -#ifdef NEW_STRING_APIS protected: virtual const void* Implementation() const { return "nsCString"; } virtual const char* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual char* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); -#endif public: /** @@ -109,36 +72,16 @@ public: */ nsCString(const nsCString& aString); -#ifdef NEW_STRING_APIS explicit nsCString( const nsAReadableCString& ); - nsCString(const char*); + explicit nsCString(const char*); nsCString(const char*, PRInt32); -#else - /** - * This constructor accepts an isolatin string - * @param aCString is a ptr to a 1-byte cstr - */ - nsCString(const char* aCString,PRInt32 aLength=-1); - - /** - * This constructor accepts a unichar string - * @param aCString is a ptr to a 2-byte cstr - */ -//nsCString(const PRUnichar* aString,PRInt32 aLength=-1); - - /** - * This is a copy constructor that accepts an nsStr - * @param reference to another nsCString - */ -//nsCString(const nsStr&); -#endif /** * This constructor takes a subsumestr * @param reference to subsumestr */ - nsCString(nsSubsumeCStr& aSubsumeStr); + explicit nsCString(nsSubsumeCStr& aSubsumeStr); /** * Destructor @@ -186,17 +129,6 @@ public: SetLength(anIndex); } -#ifndef NEW_STRING_APIS - /** - * Determine whether or not this string has a length of 0 - * - * @return TRUE if empty. - */ - PRBool IsEmpty(void) const { - return PRBool(0==mLength); - } -#endif - /********************************************************************** Accessor methods... *********************************************************************/ @@ -207,49 +139,8 @@ public: */ const char* GetBuffer(void) const; - -#ifndef NEW_STRING_APIS - /** - * Get nth character. - */ - PRUnichar operator[](PRUint32 anIndex) const; - PRUnichar CharAt(PRUint32 anIndex) const; - PRUnichar First(void) const; - PRUnichar Last(void) const; -#endif - PRBool SetCharAt(PRUnichar aChar,PRUint32 anIndex); - /********************************************************************** - String creation methods... - *********************************************************************/ - -#ifndef NEW_STRING_APIS - /** - * Create a new string by appending given string to this - * @param aString -- 2nd string to be appended - * @return new string - */ - nsSubsumeCStr operator+(const nsCString& aString); - - /** - * create a new string by adding this to the given char*. - * @param aCString is a ptr to cstring to be added to this - * @return newly created string - */ - nsSubsumeCStr operator+(const char* aCString); - - - /** - * create a new string by adding this to the given char. - * @param aChar is a char to be added to this - * @return newly created string - */ - nsSubsumeCStr operator+(PRUnichar aChar); - nsSubsumeCStr operator+(char aChar); -#endif - - /********************************************************************** Lexomorphic transforms... *********************************************************************/ @@ -419,50 +310,16 @@ public: */ nsCString& operator=( const nsCString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsCString& operator=( const nsAReadableCString& aReadable ) { Assign(aReadable); return *this; } nsCString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsCString& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsCString& operator=( char aChar ) { Assign(aChar); return *this; } -#endif void AssignWithConversion(const PRUnichar*,PRInt32=-1); void AssignWithConversion( const nsString& aString ); -#ifdef NEW_STRING_APIS void AssignWithConversion( const nsAReadableString& aString ); -#endif void AssignWithConversion(PRUnichar); -#ifndef NEW_STRING_APIS - nsCString& Assign(const char* aString,PRInt32 aCount=-1); - nsCString& Assign(char aChar); - - nsCString& Assign(const nsStr& aString,PRInt32 aCount=-1); -//nsCString& Assign(const PRUnichar* aString,PRInt32 aCount=-1) { AssignWithConversion(aString, aCount); return *this; } -//nsCString& Assign(PRUnichar aChar) { AssignWithConversion(aChar); return *this; } - - /** - * here come a bunch of assignment operators... - * @param aString: string to be added to this - * @return this - */ -//nsCString& operator=(PRUnichar aChar) {AssignWithConversion(aChar); return *this;} - nsCString& operator=(char aChar) {return Assign(aChar);} -//nsCString& operator=(const PRUnichar* aString) {AssignWithConversion(aString); return *this;} - -//nsCString& operator=(const nsStr& aString) {return Assign(aString);} - nsCString& operator=(const char* aCString) {return Assign(aCString);} - - // Yes, I know this makes assignment from a |nsSubsumeString| not do the special thing - // |nsSubsumeString| needs to go away - #if defined(AIX) || defined(XP_OS2_VACPP) - nsCString& operator=(const nsSubsumeCStr& aSubsumeString); // AIX and VAC++ requires a const here - #else - nsCString& operator=(nsSubsumeCStr& aSubsumeString); - #endif -#endif - - /* * Appends n characters from given string to this, * @@ -475,42 +332,13 @@ public: void AppendWithConversion(const nsString&, PRInt32=-1); void AppendWithConversion(PRUnichar aChar); -#ifdef NEW_STRING_APIS void AppendWithConversion( const nsAReadableString& aString ); -#endif void AppendWithConversion(const PRUnichar*, PRInt32=-1); // Why no |AppendWithConversion(const PRUnichar*, PRInt32)|? --- now I know, because implicit construction hid the need for this routine void AppendInt(PRInt32 aInteger,PRInt32 aRadix=10); //radix=8,10 or 16 void AppendFloat( double aFloat ); -#ifdef NEW_STRING_APIS virtual void do_AppendFromReadable( const nsAReadableCString& ); -#endif - -#ifndef NEW_STRING_APIS -//nsCString& Append(const nsStr& aString,PRInt32 aCount=-1); - nsCString& Append(const nsCString& aString,PRInt32 aCount); - nsCString& Append(const nsCString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsCString& Append(const char* aString,PRInt32 aCount=-1); - nsCString& Append(char aChar); - -//nsCString& Append(PRUnichar aChar) {AppendWithConversion(aChar); return *this;} -//nsCString& Append(PRInt32 aInteger,PRInt32 aRadix=10) {AppendInt(aInteger,aRadix); return *this;} -//nsCString& Append(float aFloat) {AppendFloat(aFloat); return *this;} - - /** - * Here's a bunch of methods that append varying types... - * @param various... - * @return this - */ - nsCString& operator+=(const nsCString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsCString& operator+=(const char* aCString) {return Append(aCString);} - -//nsCString& operator+=(const PRUnichar aChar) {return Append(aChar);} - nsCString& operator+=(const char aChar) {return Append(aChar);} -//nsCString& operator+=(const int anInt) {return Append(anInt,10);} -#endif - /* * Copies n characters from this string to given string, * starting at the leftmost offset. @@ -548,57 +376,7 @@ public: void InsertWithConversion(PRUnichar aChar,PRUint32 anOffset); // Why no |InsertWithConversion(PRUnichar*)|? -#ifdef NEW_STRING_APIS virtual void do_InsertFromReadable( const nsAReadableCString&, PRUint32 ); -#endif - -#ifndef NEW_STRING_APIS - /* - * This method inserts n chars from given string into this - * string at str[anOffset]. - * - * @param aCopy -- String to be inserted into this - * @param anOffset -- insertion position within this str - * @param aCount -- number of chars to be copied from aCopy - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return number of chars inserted into this. - */ - void Insert(const nsCString& aCopy,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a given string into this string at - * a specified offset. - * - * @param aString* to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ - void Insert(const char* aChar,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a single char into this string at - * a specified offset. - * - * @param character to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//void Insert(PRUnichar aChar,PRUint32 anOffset) {InsertWithConversion(aChar,anOffset);} - void Insert(char aChar,PRUint32 anOffset); -#endif - - /* - * This method is used to cut characters in this string - * starting at anOffset, continuing for aCount chars. - * - * @param anOffset -- start pos for cut operation - * @param aCount -- number of chars to be cut - * @return *this - */ -#ifndef NEW_STRING_APIS - void Cut(PRUint32 anOffset,PRInt32 aCount); -#endif /********************************************************************** @@ -699,96 +477,6 @@ public: PRBool EqualsIgnoreCase(const char* aString,PRInt32 aCount=-1) const; PRBool EqualsIgnoreCase(const PRUnichar* aString,PRInt32 aCount=-1) const; -#ifndef NEW_STRING_APIS -//virtual PRInt32 Compare(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} -//virtual PRInt32 Compare(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - - virtual PRInt32 Compare(const nsStr &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - /** - * Compare this to given string; note that we compare full strings here. - * The optional length argument just lets us know how long the given string is. - * If you provide a length, it is compared to length of this string as an - * optimization. - * - * @param aString -- the string to compare to this - * @param aCount -- number of chars in given string you want to compare - * @return TRUE if equal - */ - PRBool Equals(const nsString &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - - PRBool Equals(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return EqualsWithConversion(aString,aIgnoreCase,aCount); -//} - - PRBool Equals(const nsStr& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - PRBool EqualsIgnoreCase(const nsStr& aString) const; - - /** - * These methods compare a given string type to this one - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator==(const nsStr &aString) const; - PRBool operator==(const char* aString) const; -//PRBool operator==(const PRUnichar* aString) const; - - /** - * These methods perform a !compare of a given string type to this - * @param aString is the string to be compared to this - * @return TRUE - */ - PRBool operator!=(const nsStr &aString) const; - PRBool operator!=(const char* aString) const; -//PRBool operator!=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is < than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<(const nsStr &aString) const; - PRBool operator<(const char* aString) const; -//PRBool operator<(const PRUnichar* aString) const; - - /** - * These methods test if a given string is > than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>(const nsStr &S) const; - PRBool operator>(const char* aString) const; -//PRBool operator>(const PRUnichar* aString) const; - - /** - * These methods test if a given string is <= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<=(const nsStr &S) const; - PRBool operator<=(const char* aString) const; -//PRBool operator<=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is >= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>=(const nsStr &S) const; - PRBool operator>=(const char* aString) const; -//PRBool operator>=(const PRUnichar* aString) const; -#endif // !defined(NEW_STRING_APIS) void DebugDump(void) const; @@ -799,28 +487,14 @@ public: private: // NOT TO BE IMPLEMENTED // these signatures help clients not accidentally call the wrong thing helped by C++ automatic integral promotion -#ifdef NEW_STRING_APIS void operator=( PRUnichar ); -#endif void AssignWithConversion( char ); void AssignWithConversion( const char*, PRInt32=-1 ); void AppendWithConversion( char ); void InsertWithConversion( char, PRUint32 ); }; -#if 0 // #ifdef NEW_STRING_APIS -inline -nsPromiseConcatenation -operator+( const nsPromiseConcatenation& lhs, const nsCString& rhs ) - { - return nsPromiseConcatenation(lhs, rhs); - } -#endif - -#ifdef NEW_STRING_APIS NS_DEF_STRING_COMPARISON_OPERATORS(nsCString, char) -// NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsCString, char); -#endif extern NS_COM int fputs(const nsCString& aString, FILE* out); //ostream& operator<<(ostream& aStream,const nsCString& aString); @@ -839,27 +513,20 @@ public: virtual ~nsCAutoString(); nsCAutoString(); - nsCAutoString(const nsCString& ); - nsCAutoString(const nsAReadableCString& aString); - nsCAutoString(const char* aString); + explicit nsCAutoString(const nsCString& ); + explicit nsCAutoString(const nsAReadableCString& aString); + explicit nsCAutoString(const char* aString); nsCAutoString(const char* aString,PRInt32 aLength); - nsCAutoString(const CBufDescriptor& aBuffer); - -#ifndef NEW_STRING_APIS -// nsCAutoString(const PRUnichar* aString,PRInt32 aLength=-1); -// nsCAutoString(const nsStr& aString); -// nsCAutoString(PRUnichar aChar); -#endif + explicit nsCAutoString(const CBufDescriptor& aBuffer); #if defined(AIX) || defined(XP_OS2_VACPP) - nsCAutoString(const nsSubsumeCStr& aSubsumeStr); // AIX and VAC++ require a const + explicit nsCAutoString(const nsSubsumeCStr& aSubsumeStr); // AIX and VAC++ require a const #else - nsCAutoString(nsSubsumeCStr& aSubsumeStr); + explicit nsCAutoString(nsSubsumeCStr& aSubsumeStr); #endif // AIX || XP_OS2_VACPP nsCAutoString& operator=( const nsCAutoString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS private: void operator=( PRUnichar ); // NOT TO BE IMPLEMENTED public: @@ -867,13 +534,6 @@ public: nsCAutoString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsCAutoString& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsCAutoString& operator=( char aChar ) { Assign(aChar); return *this; } -#else - nsCAutoString& operator=(const nsCString& aString) {nsCString::Assign(aString); return *this;} - nsCAutoString& operator=(const char* aCString) {nsCString::Assign(aCString); return *this;} -// nsCAutoString& operator=(const PRUnichar* aString) {nsCString::Assign(aString); return *this;} -// nsCAutoString& operator=(PRUnichar aChar) {nsCString::Assign(aChar); return *this;} - nsCAutoString& operator=(char aChar) {nsCString::Assign(aChar); return *this;} -#endif /** * Retrieve the size of this string @@ -884,14 +544,6 @@ public: char mBuffer[kDefaultStringSize]; }; -#if 0//def NEW_STRING_APIS -NS_DEF_STRING_COMPARISON_OPERATORS(nsCAutoString, char) -#endif - -#ifdef NEW_STRING_APIS -NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsCAutoString, char) -#endif - /** * A helper class that converts a UCS2 string to UTF8 */ @@ -902,6 +554,7 @@ class NS_COM NS_ConvertUCS2toUTF8 */ { public: + explicit NS_ConvertUCS2toUTF8( const PRUnichar* aString ) { Append( aString, ~PRUint32(0) /* MAXINT */); @@ -912,14 +565,13 @@ class NS_COM NS_ConvertUCS2toUTF8 Append( aString, aLength ); } + explicit NS_ConvertUCS2toUTF8( PRUnichar aChar ) { Append( &aChar, 1 ); } -#ifdef NEW_STRING_APIS - NS_ConvertUCS2toUTF8( const nsAReadableString& aString ); -#endif + explicit NS_ConvertUCS2toUTF8( const nsAReadableString& aString ); operator const char*() const { @@ -950,19 +602,17 @@ class NS_COM NS_ConvertUCS2toUTF8 ***************************************************************/ class NS_COM nsSubsumeCStr : public nsCString { public: - nsSubsumeCStr(nsStr& aString); + explicit nsSubsumeCStr(nsStr& aString); nsSubsumeCStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr& operator=( const nsSubsumeCStr& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsSubsumeCStr& operator=( const nsAReadableCString& aReadable ) { Assign(aReadable); return *this; } nsSubsumeCStr& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsSubsumeCStr& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsSubsumeCStr& operator=( char aChar ) { Assign(aChar); return *this; } private: void operator=( PRUnichar ); // NOT TO BE IMPLEMENTED -#endif }; diff --git a/mozilla/string/obsolete/nsString2.cpp b/mozilla/string/obsolete/nsString2.cpp index 80771e2f607..ad0611f101c 100644 --- a/mozilla/string/obsolete/nsString2.cpp +++ b/mozilla/string/obsolete/nsString2.cpp @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -69,25 +67,10 @@ nsString::nsString() { Initialize(*this,eTwoByte); } -#if 0 -/** - * This constructor accepts an ascii string - * @update gess 1/4/99 - * @param aCString is a ptr to a 1-byte cstr - * @param aLength tells us how many chars to copy from given CString - */ -nsString::nsString(const char* aCString,PRInt32 aCount){ - Initialize(*this,eTwoByte); - AssignWithConversion(aCString,aCount); -} -#endif - -#ifdef NEW_STRING_APIS nsString::nsString(const PRUnichar* aString) { Initialize(*this,eTwoByte); Assign(aString); } -#endif /** * This constructor accepts a unicode string @@ -100,18 +83,6 @@ nsString::nsString(const PRUnichar* aString,PRInt32 aCount) { Assign(aString,aCount); } -#if 0 -/** - * This constructor works for all other nsSTr derivatives - * @update gess 1/4/99 - * @param reference to another nsCString - */ -nsString::nsString(const nsStr &aString) { - Initialize(*this,eTwoByte); - StrAssign(*this,aString,0,aString.mLength); -} -#endif - /** * This is our copy constructor * @update gess 1/4/99 @@ -149,7 +120,6 @@ nsString::~nsString() { nsStr::Destroy(*this); } -#ifdef NEW_STRING_APIS const PRUnichar* nsString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const { switch ( aRequest ) { case kFirstFragment: @@ -199,7 +169,6 @@ nsString::nsString( const nsAReadableString& aReadable ) { Initialize(*this,eTwoByte); Assign(aReadable); } -#endif void nsString::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const { if (aResult) { @@ -275,36 +244,6 @@ const PRUnichar* nsString::GetUnicode(void) const { return result; } -#ifndef NEW_STRING_APIS -/** - * Get nth character. - */ -PRUnichar nsString::operator[](PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get nth character. - */ -PRUnichar nsString::CharAt(PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get 1st character. - */ -PRUnichar nsString::First(void) const{ - return GetCharAt(*this,0); -} - -/** - * Get last character. - */ -PRUnichar nsString::Last(void) const{ - return GetCharAt(*this,mLength-1); -} -#endif // !defined(NEW_STRING_APIS) - /** * set a char inside this string at given index * @param aChar is the char you want to write into this string @@ -330,81 +269,6 @@ PRBool nsString::SetCharAt(PRUnichar aChar,PRUint32 anIndex){ append (operator+) METHODS.... *********************************************************/ -#ifndef NEW_STRING_APIS -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const nsStr& aString){ - nsString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeStr(temp); -} - -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const nsString& aString){ - nsString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeStr(temp); -} - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aCString is a ptr to cstring to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const char* aCString) { - nsString temp(*this); - temp.AppendWithConversion(aCString); - return nsSubsumeStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(char aChar) { - nsString temp(*this); - temp.Append(char(aChar)); - return nsSubsumeStr(temp); -} - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aString is a ptr to unistring to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const PRUnichar* aString) { - nsString temp(*this); - temp.Append(aString); - return nsSubsumeStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a unichar to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(PRUnichar aChar) { - nsString temp(*this); - temp.Append(char(aChar)); - return nsSubsumeStr(temp); -} -#endif // !defined(NEW_STRING_APIS) /********************************************************************** Lexomorphic transforms... @@ -952,26 +816,6 @@ PRInt32 nsString::ToInteger(PRInt32* anErrorCode,PRUint32 aRadix) const { *********************************************************************/ -#ifndef NEW_STRING_APIS -/** - * assign given nsStr (or derivative) to this one - * @update gess 01/04/99 - * @param aString: nsStr to be appended - * @return this - */ -nsString& nsString::Assign(const nsStr& aString,PRInt32 aCount) { - if(this!=&aString){ - nsStr::Truncate(*this,0); - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - StrAssign(*this,aString,0,aCount); - } - return *this; -} -#endif /** * assign given char* to this string @@ -989,33 +833,13 @@ void nsString::AssignWithConversion(const char* aCString,PRInt32 aCount) { } } -#ifdef NEW_STRING_APIS void nsString::AssignWithConversion(const char* aCString) { nsStr::Truncate(*this,0); if(aCString){ AppendWithConversion(aCString); } } -#endif -#ifndef NEW_STRING_APIS -/** - * assign given unichar* to this string - * @update gess 01/04/99 - * @param aString: buffer to be assigned to this - * @param aCount -- length of given buffer or -1 if you want me to compute length. - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return this - */ -nsString& nsString::Assign(const PRUnichar* aString,PRInt32 aCount) { - nsStr::Truncate(*this,0); - if(aString){ - Append(aString,aCount); - } - return *this; -} -#endif /** * assign given char to this string @@ -1028,39 +852,6 @@ void nsString::AssignWithConversion(char aChar) { AppendWithConversion(aChar); } -#ifndef NEW_STRING_APIS -/** - * assign given unichar to this string - * @update gess 01/04/99 - * @param aChar: char to be assignd to this - * @return this - */ -nsString& nsString::Assign(PRUnichar aChar) { - nsStr::Truncate(*this,0); - return Append(aChar); -} -#endif - -#ifndef NEW_STRING_APIS -/** - * WARNING! THIS IS A VERY SPECIAL METHOD. - * This method "steals" the contents of aSource and hands it to aDest. - * Ordinarily a copy is made, but not in this version. - * @update gess10/30/98 - * @param - * @return - */ -#if defined(AIX) || defined(XP_OS2_VACPP) -nsString& nsString::operator=(const nsSubsumeStr& aSubsumeString) { - nsSubsumeStr temp(aSubsumeString); // a temp is needed for the AIX and VAC++ compilers - Subsume(*this,temp); -#else - nsString& nsString::operator=(nsSubsumeStr& aSubsumeString) { - Subsume(*this,aSubsumeString); -#endif // AIX || XP_OS2_VACPP - return *this; -} -#endif /** * append given c-string to this string @@ -1169,96 +960,6 @@ void nsString::AppendFloat(double aFloat){ } -#ifndef NEW_STRING_APIS -/** - * append given string to this string; - * @update gess 01/04/99 - * @param aString : string to be appended to this - * @return this - */ -#if 0 -nsString& nsString::Append(const nsStr& aString,PRInt32 aCount) { - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - if(0(const nsString& S) const {return PRBool(Compare(S)>0);} -//PRBool nsString::operator>(const nsStr& S) const {return PRBool(Compare(S)>0);} -//PRBool nsString::operator>(const char* s) const {return PRBool(Compare(s)>0);} -PRBool nsString::operator>(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))>0);} - -PRBool nsString::operator<=(const nsString& S) const {return PRBool(Compare(S)<=0);} -//PRBool nsString::operator<=(const nsStr& S) const {return PRBool(Compare(S)<=0);} -//PRBool nsString::operator<=(const char* s) const {return PRBool(Compare(s)<=0);} -PRBool nsString::operator<=(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))<=0);} - -PRBool nsString::operator>=(const nsString& S) const {return PRBool(Compare(S)>=0);} -//PRBool nsString::operator>=(const nsStr& S) const {return PRBool(Compare(S)>=0);} -//PRBool nsString::operator>=(const char* s) const {return PRBool(Compare(s)>=0);} -PRBool nsString::operator>=(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))>=0);} -#endif // !defined(NEW_STRING_APIS) PRBool nsString::EqualsIgnoreCase(const nsString& aString) const { return EqualsWithConversion(aString,PR_TRUE); @@ -1881,12 +1444,6 @@ PRBool nsString::EqualsIgnoreCase(const char* aString,PRInt32 aLength) const { return EqualsWithConversion(aString,PR_TRUE,aLength); } -#ifndef NEW_STRING_APIS -PRBool nsString::EqualsIgnoreCase(const PRUnichar* s1, const PRUnichar* s2) const { - return Equals(s1,s2,PR_TRUE); -} -#endif - /** * Compare this to given string; note that we compare full strings here. * @@ -1963,40 +1520,6 @@ PRBool nsString::EqualsIgnoreCase(/*FIX: const */nsIAtom *aAtom) const { return EqualsAtom(aAtom,PR_TRUE); } -#ifndef NEW_STRING_APIS -/** - * Compare this to given string; note that we compare full strings here. - * - * @update gess 01/04/99 - * @param aString is the other nsString to be compared to - * @param aCount tells us how many chars to test; -1 implies full length - * @return TRUE if equal - */ -PRBool nsString::Equals(const nsStr& aString,PRBool aIgnoreCase,PRInt32 aCount) const { - PRInt32 theAnswer=nsStr::StrCompare(*this,aString,aCount,aIgnoreCase); - PRBool result=PRBool(0==theAnswer); - return result; -} - -/** - * Compare given strings - * @update gess 7/27/98 - * @param s1 -- first unichar string to be compared - * @param s2 -- second unichar string to be compared - * @return TRUE if equal - */ -PRBool nsString::Equals(const PRUnichar* s1, const PRUnichar* s2,PRBool aIgnoreCase) const { - NS_ASSERTION(0!=s1,kNullPointerError); - NS_ASSERTION(0!=s2,kNullPointerError); - PRBool result=PR_FALSE; - if((s1) && (s2)){ - PRInt32 cmp=(aIgnoreCase) ? nsCRT::strcasecmp(s1,s2) : nsCRT::strcmp(s1,s2); - result=PRBool(0==cmp); - } - - return result; -} -#endif /** * Determine if given char in valid alpha range @@ -2321,21 +1844,6 @@ NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( char aChar ) AppendWithConversion(aChar); } -#if 0 -#ifdef NEW_STRING_APIS -NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( const nsAReadableCString& ) - { - // ... - } -#else -NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( const nsCString& ) - { - // ... - } -#endif -#endif - - void NS_ConvertUTF8toUCS2::Init( const char* aCString, PRUint32 aLength ) { diff --git a/mozilla/string/obsolete/nsString2.h b/mozilla/string/obsolete/nsString2.h index 754598dc182..3cb8102a06c 100644 --- a/mozilla/string/obsolete/nsString2.h +++ b/mozilla/string/obsolete/nsString2.h @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -39,16 +37,6 @@ 4. Subsumable strings ***********************************************************************/ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - - #ifndef _nsString_ #define _nsString_ @@ -60,9 +48,7 @@ #include "nsStr.h" #include "nsCRT.h" -#ifdef NEW_STRING_APIS #include "nsAWritableString.h" -#endif #ifdef STANDALONE_MI_STRING_TESTS class nsAReadableString { public: virtual ~nsAReadableString() { } }; @@ -78,17 +64,13 @@ class nsISizeOfHandler; class NS_COM nsSubsumeStr; class NS_COM nsString : -#if defined(NEW_STRING_APIS) || defined(STANDALONE_MI_STRING_TESTS) public nsAWritableString, -#endif public nsStr { -#ifdef NEW_STRING_APIS protected: virtual const void* Implementation() const { return "nsString"; } virtual const PRUnichar* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual PRUnichar* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); -#endif public: @@ -103,30 +85,10 @@ public: */ nsString(const nsString& aString); -#ifdef NEW_STRING_APIS explicit nsString(const nsAReadableString&); - nsString(const PRUnichar*); + explicit nsString(const PRUnichar*); nsString(const PRUnichar*, PRInt32); -#else - /** - * This constructor accepts a unichar string - * @param aCString is a ptr to a 2-byte cstr - */ - nsString(const PRUnichar* aString,PRInt32 aCount=-1); - - /** - * This constructor accepts an isolatin string - * @param aCString is a ptr to a 1-byte cstr - */ -//nsString(const char* aCString,PRInt32 aCount=-1); - - /** - * This is a copy constructor that accepts an nsStr - * @param reference to another nsString - */ -//nsString(const nsStr&); -#endif /** @@ -134,9 +96,9 @@ public: * @param reference to subsumestr */ #if defined(AIX) || defined(XP_OS2_VACPP) - nsString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ require a const here + explicit nsString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ require a const here #else - nsString(nsSubsumeStr& aSubsumeStr); + explicit nsString(nsSubsumeStr& aSubsumeStr); #endif /** @@ -198,17 +160,6 @@ public: return result; } -#ifndef NEW_STRING_APIS - /** - * Determine whether or not this string has a length of 0 - * - * @return TRUE if empty. - */ - PRBool IsEmpty(void) const { - return PRBool(0==mLength); - } -#endif - /********************************************************************** Getters/Setters... *********************************************************************/ @@ -219,63 +170,12 @@ public: const char* GetBuffer(void) const; const PRUnichar* GetUnicode(void) const; - -#ifndef NEW_STRING_APIS - /** - * Get nth character. - */ - PRUnichar operator[](PRUint32 anIndex) const; - PRUnichar CharAt(PRUint32 anIndex) const; - PRUnichar First(void) const; - PRUnichar Last(void) const; -#endif // !defined(NEW_STRING_APIS) /** * Set nth character. */ PRBool SetCharAt(PRUnichar aChar,PRUint32 anIndex); -#ifndef NEW_STRING_APIS - /********************************************************************** - String concatenation methods... - *********************************************************************/ - - /** - * Create a new string by appending given string to this - * @param aString -- 2nd string to be appended - * @return new subsumable string - */ - nsSubsumeStr operator+(const nsStr& aString); - nsSubsumeStr operator+(const nsString& aString); - - /** - * create a new string by adding this to the given cstring - * @param aCString is a ptr to cstring to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(const char* aCString); - - /** - * create a new string by adding this to the given prunichar*. - * @param aString is a ptr to UC-string to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(const PRUnichar* aString); - - /** - * create a new string by adding this to the given char. - * @param aChar is a char to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(char aChar); - - /** - * create a new string by adding this to the given char. - * @param aChar is a unichar to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(PRUnichar aChar); -#endif /********************************************************************** Lexomorphic transforms... @@ -449,47 +349,14 @@ public: */ nsString& operator=( const nsString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsString& operator=( const nsAReadableString& aReadable ) { Assign(aReadable); return *this; } nsString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsString& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsString& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } -#endif void AssignWithConversion(char); -#ifdef NEW_STRING_APIS void AssignWithConversion(const char*); void AssignWithConversion(const char*, PRInt32); -#else - void AssignWithConversion(const char*, PRInt32=-1); - - nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1); - nsString& Assign(PRUnichar aChar); - - nsString& Assign(const nsStr& aString,PRInt32 aCount=-1); -//nsString& Assign(const char* aString,PRInt32 aCount=-1) { AssignWithConversion(aString, aCount); return *this; } -//nsString& Assign(char aChar) { AssignWithConversion(aChar); return *this; } - - /** - * here come a bunch of assignment operators... - * @param aString: string to be added to this - * @return this - */ - nsString& operator=(PRUnichar aChar) {Assign(aChar); return *this;} -//nsString& operator=(char aChar) {AssignWithConversion(aChar); return *this;} -//nsString& operator=(const char* aCString) {AssignWithConversion(aCString); return *this;} - -//nsString& operator=(const nsStr& aString) {return Assign(aString);} - nsString& operator=(const PRUnichar* aString) {return Assign(aString);} - - // Yes, I know this makes assignment from a |nsSubsumeString| not do the special thing - // |nsSubsumeString| needs to go away - #if defined(AIX) || defined(XP_OS2_VACPP) - nsString& operator=(const nsSubsumeStr& aSubsumeString); // AIX and VAC++ requires a const here - #else - nsString& operator=(nsSubsumeStr& aSubsumeString); - #endif -#endif /* @@ -507,42 +374,6 @@ public: virtual void do_AppendFromElement( PRUnichar ); -#ifndef NEW_STRING_APIS - /* - * Appends n characters from given string to this, - * - * @param aString is the source to be appended to this - * @param aCount -- number of chars to copy; -1 tells us to compute the strlen for you - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * @return number of chars copied - */ -//nsString& Append(const nsStr& aString,PRInt32 aCount); -//nsString& Append(const nsStr& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& Append(const nsString& aString,PRInt32 aCount); - nsString& Append(const nsString& aString) {return Append(aString,(PRInt32)aString.mLength);} - - nsString& Append(const PRUnichar* aString,PRInt32 aCount=-1); - nsString& Append(PRUnichar aChar); - -//nsString& Append(const char* aString,PRInt32 aCount=-1) { AppendWithConversion(aString,aCount); return *this; } -//nsString& Append(char aChar) { AppendWithConversion(aChar); return *this; } -//nsString& Append(PRInt32 aInteger,PRInt32 aRadix=10) { AppendInt(aInteger,aRadix); return *this; } -//nsString& Append(float aFloat) { AppendFloat(aFloat); return *this; } - - /** - * Here's a bunch of methods that append varying types... - * @param various... - * @return this - */ -//nsString& operator+=(const char* aCString) {return Append(aCString);} -//nsString& operator+=(const char aChar) {return Append((PRUnichar) (unsigned char)aChar);} - nsString& operator+=(const PRUnichar aChar) {return Append(aChar);} -//nsString& operator+=(const int anInt) {return Append(anInt,10);} - -//nsString& operator+=(const nsStr& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& operator+=(const nsString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& operator+=(const PRUnichar* aUCString) {return Append(aUCString);} -#endif /* * Copies n characters from this string to given string, @@ -581,55 +412,6 @@ public: //void InsertWithConversion(char); void InsertWithConversion(const char*, PRUint32, PRInt32=-1); -#ifndef NEW_STRING_APIS - /* - * This method inserts n chars from given string into this - * string at str[anOffset]. - * - * @param aCopy -- String to be inserted into this - * @param anOffset -- insertion position within this str - * @param aCount -- number of chars to be copied from aCopy - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return number of chars inserted into this. - */ - void Insert(const nsString& aCopy,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a given string into this string at - * a specified offset. - * - * @param aString* to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//nsString& Insert(const char* aChar,PRUint32 anOffset,PRInt32 aCount=-1) {InsertWithConversion(aChar, anOffset, aCount); return *this;} - void Insert(const PRUnichar* aChar,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a single char into this string at - * a specified offset. - * - * @param character to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//nsString& Insert(char aChar,PRUint32 anOffset) {InsertWithConversion(aChar,anOffset); return *this;} - void Insert(PRUnichar aChar,PRUint32 anOffset); -#endif - - -#ifndef NEW_STRING_APIS - /* - * This method is used to cut characters in this string - * starting at anOffset, continuing for aCount chars. - * - * @param anOffset -- start pos for cut operation - * @param aCount -- number of chars to be cut - * @return *this - */ - void Cut(PRUint32 anOffset,PRInt32 aCount); -#endif /********************************************************************** @@ -739,110 +521,6 @@ public: PRBool EqualsIgnoreCase(const char* aString,PRInt32 aCount=-1) const; PRBool EqualsIgnoreCase(/*FIX: const */nsIAtom *aAtom) const; -#ifndef NEW_STRING_APIS -//virtual PRInt32 Compare(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - -//virtual PRInt32 Compare(const nsString& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - -//virtual PRInt32 Compare(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - - virtual PRInt32 Compare(const nsStr &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - - /** - * Compare this to given string; note that we compare full strings here. - * The optional length argument just lets us know how long the given string is. - * If you provide a length, it is compared to length of this string as an - * optimization. - * - * @param aString -- the string to compare to this - * @param aCount -- number of chars to be compared. - * @return TRUE if equal - */ - PRBool Equals(const nsString &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return EqualsWithConversion(aString,aIgnoreCase,aCount); -//} - - PRBool Equals(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(/*FIX: const */nsIAtom* anAtom,PRBool aIgnoreCase) const { return EqualsAtom(anAtom, aIgnoreCase); } - PRBool Equals(const PRUnichar* s1, const PRUnichar* s2,PRBool aIgnoreCase=PR_FALSE) const; - PRBool Equals(const nsStr& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - PRBool EqualsIgnoreCase(const PRUnichar* s1, const PRUnichar* s2) const; - - /** - * These methods compare a given string type to this one - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator==(const nsString &aString) const; -//PRBool operator==(const nsStr &aString) const; -//PRBool operator==(const char *aString) const; - PRBool operator==(const PRUnichar* aString) const; - - /** - * These methods perform a !compare of a given string type to this - * @param aString is the string to be compared to this - * @return TRUE - */ - PRBool operator!=(const nsString &aString) const; -//PRBool operator!=(const nsStr &aString) const; -//PRBool operator!=(const char* aString) const; - PRBool operator!=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is < than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<(const nsString &aString) const; -//PRBool operator<(const nsStr &aString) const; -//PRBool operator<(const char* aString) const; - PRBool operator<(const PRUnichar* aString) const; - - /** - * These methods test if a given string is > than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>(const nsString &aString) const; -//PRBool operator>(const nsStr &S) const; -//PRBool operator>(const char* aString) const; - PRBool operator>(const PRUnichar* aString) const; - - /** - * These methods test if a given string is <= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<=(const nsString &aString) const; -//PRBool operator<=(const nsStr &S) const; -//PRBool operator<=(const char* aString) const; - PRBool operator<=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is >= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>=(const nsString &aString) const; -//PRBool operator>=(const nsStr &S) const; -//PRBool operator>=(const char* aString) const; - PRBool operator>=(const PRUnichar* aString) const; -#endif // !defined(NEW_STRING_APIS) /** * Determine if given buffer is plain ascii @@ -884,9 +562,7 @@ public: private: // NOT TO BE IMPLEMENTED // these signatures help clients not accidentally call the wrong thing helped by C++ automatic integral promotion -#ifdef NEW_STRING_APIS void operator=( char ); -#endif void AssignWithConversion( PRUnichar ); void AssignWithConversion( const PRUnichar*, PRInt32=-1 ); void AppendWithConversion( PRUnichar ); @@ -894,19 +570,7 @@ private: void InsertWithConversion( const PRUnichar*, PRUint32, PRInt32=-1 ); }; -#ifdef NEW_STRING_APIS NS_DEF_STRING_COMPARISON_OPERATORS(nsString, PRUnichar) -// NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsString, PRUnichar) -#endif - -#if 0 // #ifdef NEW_STRING_APIS -inline -nsPromiseConcatenation -operator+( const nsPromiseConcatenation& lhs, const nsString& rhs ) - { - return nsPromiseConcatenation(lhs, rhs); - } -#endif extern NS_COM int fputs(const nsString& aString, FILE* out); //ostream& operator<<(ostream& aStream,const nsString& aString); @@ -924,27 +588,21 @@ public: virtual ~nsAutoString(); nsAutoString(); nsAutoString(const nsAutoString& aString); - nsAutoString(const nsAReadableString& aString); - nsAutoString(const nsString& aString); - nsAutoString(const PRUnichar* aString); + explicit nsAutoString(const nsAReadableString& aString); + explicit nsAutoString(const nsString& aString); + explicit nsAutoString(const PRUnichar* aString); nsAutoString(const PRUnichar* aString,PRInt32 aLength); - nsAutoString(PRUnichar aChar); - nsAutoString(const CBufDescriptor& aBuffer); - -#ifndef NEW_STRING_APIS -// nsAutoString(const char* aCString,PRInt32 aLength=-1); -// nsAutoString(const nsStr& aString); -#endif + explicit nsAutoString(PRUnichar aChar); + explicit nsAutoString(const CBufDescriptor& aBuffer); #if defined(AIX) || defined(XP_OS2_VACPP) - nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ requires a const + explicit nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ requires a const #else - nsAutoString(nsSubsumeStr& aSubsumeStr); + explicit nsAutoString(nsSubsumeStr& aSubsumeStr); #endif // AIX || XP_OS2_VACPP nsAutoString& operator=( const nsAutoString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS private: void operator=( char ); // NOT TO BE IMPLEMENTED public: @@ -952,13 +610,6 @@ public: nsAutoString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsAutoString& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsAutoString& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } -#else - nsAutoString& operator=(const nsStr& aString) {nsString::Assign(aString); return *this;} -// nsAutoString& operator=(const char* aCString) {nsString::Assign(aCString); return *this;} -// nsAutoString& operator=(char aChar) {nsString::Assign(aChar); return *this;} - nsAutoString& operator=(const PRUnichar* aBuffer) {nsString::Assign(aBuffer); return *this;} - nsAutoString& operator=(PRUnichar aChar) {nsString::Assign(aChar); return *this;} -#endif /** * Retrieve the size of this string @@ -969,10 +620,6 @@ public: char mBuffer[kDefaultStringSize<& aReadable ) { Assign(aReadable); return *this; } nsSubsumeStr& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsSubsumeStr& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } private: void operator=( char ); // NOT TO BE IMPLEMENTED -#endif }; diff --git a/mozilla/xpcom/ds/nsStr.h b/mozilla/xpcom/ds/nsStr.h index d876eee8b70..7c58d84ac33 100644 --- a/mozilla/xpcom/ds/nsStr.h +++ b/mozilla/xpcom/ds/nsStr.h @@ -17,22 +17,11 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - /*********************************************************************** MODULE NOTES: @@ -431,21 +420,6 @@ struct NS_COM nsStr { */ static PRUint32 HashCode(const nsStr& aDest); -#ifndef NEW_STRING_APIS - static void Append(nsStr& aDest,const nsStr& aSource,PRUint32 anOffset,PRInt32 aCount) { - StrAppend(aDest, aSource, anOffset, aCount); - } - static void Assign(nsStr& aDest,const nsStr& aSource,PRUint32 anOffset,PRInt32 aCount) { - StrAssign(aDest, aSource, anOffset, aCount); - } - static void Insert( nsStr& aDest,PRUint32 aDestOffset,const nsStr& aSource,PRUint32 aSrcOffset,PRInt32 aCount) { - StrInsert(aDest, aDestOffset, aSource, aSrcOffset, aCount); - } - static PRInt32 Compare(const nsStr& aDest,const nsStr& aSource,PRInt32 aCount,PRBool aIgnoreCase) { - return StrCompare(aDest, aSource, aCount, aIgnoreCase); - } -#endif - #ifdef NS_STR_STATS /** * Prints an nsStr. If truncate is true, the string is only printed up to diff --git a/mozilla/xpcom/ds/nsString.cpp b/mozilla/xpcom/ds/nsString.cpp index 5fcee41354b..ff3129d4c0e 100644 --- a/mozilla/xpcom/ds/nsString.cpp +++ b/mozilla/xpcom/ds/nsString.cpp @@ -70,12 +70,10 @@ nsCString::nsCString() { Initialize(*this,eOneByte); } -#ifdef NEW_STRING_APIS nsCString::nsCString(const char* aCString) { Initialize(*this,eOneByte); Assign(aCString); } -#endif /** * This constructor accepts an ascii string @@ -137,7 +135,6 @@ nsCString::~nsCString() { Destroy(*this); } -#ifdef NEW_STRING_APIS const char* nsCString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const { switch ( aRequest ) { case kFirstFragment: @@ -172,7 +169,6 @@ nsCString::nsCString( const nsAReadableCString& aReadable ) { Initialize(*this,eOneByte); Assign(aReadable); } -#endif void nsCString::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const { if (aResult) { @@ -232,35 +228,6 @@ const char* nsCString::GetBuffer(void) const { return mStr; } -#ifndef NEW_STRING_APIS -/** - * Get nth character. - */ -PRUnichar nsCString::operator[](PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get nth character. - */ -PRUnichar nsCString::CharAt(PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get 1st character. - */ -PRUnichar nsCString::First(void) const{ - return GetCharAt(*this,0); -} - -/** - * Get last character. - */ -PRUnichar nsCString::Last(void) const{ - return (char)GetCharAt(*this,mLength-1); -} -#endif // !defined(NEW_STRING_APIS) /** * set a char inside this string at given index @@ -281,57 +248,6 @@ PRBool nsCString::SetCharAt(PRUnichar aChar,PRUint32 anIndex){ /********************************************************* append (operator+) METHODS.... *********************************************************/ -#ifndef NEW_STRING_APIS -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeCStr nsCString::operator+(const nsCString& aString){ - nsCString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeCStr(temp); -} - - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aCString is a ptr to cstring to be added to this - * @return newly created subsumable string - */ -nsSubsumeCStr nsCString::operator+(const char* aCString) { - nsCString temp(*this); - temp.Append(aCString); - return nsSubsumeCStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return newly created subsumable string - */ -nsSubsumeCStr nsCString::operator+(PRUnichar aChar) { - nsCString temp(*this); - temp.Append(aChar); - return nsSubsumeCStr(temp); -} - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return newly created string - */ -nsSubsumeCStr nsCString::operator+(char aChar) { - nsCString temp(*this); - temp.Append(aChar); - return nsSubsumeCStr(temp); -} -#endif // !defined(NEW_STRING_APIS) /********************************************************************** Lexomorphic transforms... @@ -843,73 +759,6 @@ PRInt32 nsCString::ToInteger(PRInt32* anErrorCode,PRUint32 aRadix) const { String manipulation methods... *********************************************************************/ -#ifndef NEW_STRING_APIS -/** - * assign given nsStr (or derivative) to this one - * @update gess 01/04/99 - * @param aString: string to be appended - * @return this - */ -nsCString& nsCString::Assign(const nsStr& aString,PRInt32 aCount) { - if(this!=&aString){ - nsStr::Truncate(*this,0); - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - StrAssign(*this,aString,0,aCount); - } - return *this; -} - -/** - * assign given char* to this string - * @update gess 01/04/99 - * @param aCString: buffer to be assigned to this - * @param aCount -- length of given buffer or -1 if you want me to compute length. - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return this - */ -nsCString& nsCString::Assign(const char* aCString,PRInt32 aCount) { - nsStr::Truncate(*this,0); - if(aCString){ - Append(aCString,aCount); - } - return *this; -} - -/** - * assign given char to this string - * @update gess 01/04/99 - * @param aChar: char to be assignd to this - * @return this - */ -nsCString& nsCString::Assign(char aChar) { - nsStr::Truncate(*this,0); - return Append(aChar); -} - -/** - * WARNING! THIS IS A VERY SPECIAL METHOD. - * This method "steals" the contents of aSource and hands it to aDest. - * Ordinarily a copy is made, but not in this version. - * @update gess10/30/98 - * @param - * @return - */ -#if defined(AIX) || defined(XP_OS2_VACPP) -nsCString& nsCString::operator=(const nsSubsumeCStr& aSubsumeString) { - nsSubsumeCStr temp(aSubsumeString); // a temp is needed for the AIX and VAC++ compiler - CSubsume(*this,temp); -#else -nsCString& nsCString::operator=(nsSubsumeCStr& aSubsumeString) { - CSubsume(*this,aSubsumeString); -#endif // AIX || XP_OS2_VACPP - return *this; -} -#endif /** * assign given unichar* to this string @@ -952,7 +801,6 @@ void nsCString::AssignWithConversion( const nsString& aString ) { AssignWithConversion(aString.GetUnicode(), aString.Length()); } -#ifdef NEW_STRING_APIS void nsCString::AssignWithConversion( const nsAReadableString& aString ) { nsStr::Truncate(*this,0); PRInt32 count = aString.Length(); @@ -976,9 +824,7 @@ void nsCString::AssignWithConversion( const nsAReadableString& aString ) { } } } -#endif -#ifdef NEW_STRING_APIS void nsCString::AppendWithConversion( const nsAReadableString& aString ) { PRInt32 count = aString.Length(); @@ -1001,7 +847,6 @@ void nsCString::AppendWithConversion( const nsAReadableString& aString ) { } } } -#endif /** * assign given unichar to this string @@ -1014,7 +859,6 @@ void nsCString::AssignWithConversion(PRUnichar aChar) { AppendWithConversion(aChar); } -#ifdef NEW_STRING_APIS void nsCString::do_AppendFromReadable( const nsAReadableCString& aReadable ) { if ( SameImplementation( NS_STATIC_CAST(const nsAReadableCString&, *this), aReadable) ) @@ -1022,87 +866,7 @@ void nsCString::do_AppendFromReadable( const nsAReadableCString& aReadable ) else nsAWritableCString::do_AppendFromReadable(aReadable); } -#endif -#ifndef NEW_STRING_APIS -/** - * append given string to this string - * @update gess 01/04/99 - * @param aString : string to be appended to this - * @return this - */ -nsCString& nsCString::Append(const nsCString& aString,PRInt32 aCount) { - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - if(0(const nsStr& S) const {return PRBool(Compare(S)>0);} -PRBool nsCString::operator>(const char* s) const {return PRBool(Compare(nsCAutoString(s))>0);} -//PRBool nsCString::operator>(const PRUnichar* s) const {return PRBool(Compare(s)>0);} - -PRBool nsCString::operator<=(const nsStr& S) const {return PRBool(Compare(S)<=0);} -PRBool nsCString::operator<=(const char* s) const {return PRBool(Compare(nsCAutoString(s))<=0);} -//PRBool nsCString::operator<=(const PRUnichar* s) const {return PRBool(Compare(s)<=0);} - -PRBool nsCString::operator>=(const nsStr& S) const {return PRBool(Compare(S)>=0);} -PRBool nsCString::operator>=(const char* s) const {return PRBool(Compare(nsCAutoString(s))>=0);} -//PRBool nsCString::operator>=(const PRUnichar* s) const {return PRBool(Compare(s)>=0);} -#endif - -#ifndef NEW_STRING_APIS -PRBool nsCString::EqualsIgnoreCase(const nsStr& aString) const { - return Equals(aString,PR_TRUE); -} -#endif - PRBool nsCString::EqualsIgnoreCase(const char* aString,PRInt32 aLength) const { return EqualsWithConversion(aString,PR_TRUE,aLength); } @@ -1734,22 +1359,6 @@ PRBool nsCString::EqualsIgnoreCase(const PRUnichar* aString,PRInt32 aLength) con } -#ifndef NEW_STRING_APIS -/** - * Compare this to given string; note that we compare full strings here. - * - * @update gess 01/04/99 - * @param aString is the other nsCString to be compared to - * @param aIgnoreCase tells us how to treat case - * @param aCount tells us how many chars to test; -1 implies full length - * @return TRUE if equal - */ -PRBool nsCString::Equals(const nsStr& aString,PRBool aIgnoreCase,PRInt32 aCount) const { - PRInt32 theAnswer=nsStr::StrCompare(*this,aString,aCount,aIgnoreCase); - PRBool result=PRBool(0==theAnswer); - return result; -} -#endif /** * Compare this to given string; note that we compare full strings here. @@ -1935,7 +1544,6 @@ void nsCString::DebugDump(void) const { //---------------------------------------------------------------------- -#ifdef NEW_STRING_APIS NS_ConvertUCS2toUTF8::NS_ConvertUCS2toUTF8( const nsAReadableString& aString ) { nsReadingIterator start(aString.BeginReading()); @@ -1947,7 +1555,6 @@ NS_ConvertUCS2toUTF8::NS_ConvertUCS2toUTF8( const nsAReadableString& aString ) start += start.size_forward(); } } -#endif void NS_ConvertUCS2toUTF8::Append( const PRUnichar* aString, PRUint32 aLength ) diff --git a/mozilla/xpcom/ds/nsString.h b/mozilla/xpcom/ds/nsString.h index ca40d024a8a..d928602d75c 100644 --- a/mozilla/xpcom/ds/nsString.h +++ b/mozilla/xpcom/ds/nsString.h @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -38,15 +36,6 @@ 4. Subsumable strings ***********************************************************************/ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - #ifndef _nsCString_ #define _nsCString_ @@ -57,45 +46,19 @@ #include "nsStr.h" #include "nsIAtom.h" -#ifdef NEW_STRING_APIS #include "nsAWritableString.h" -#else - #define NS_LITERAL_STRING(s) (s) - #define NS_LITERAL_CSTRING(s) (s) - - #define NS_DEF_DERIVED_STRING_OPERATOR_PLUS(_StringT, _CharT) - #define NS_DEF_2_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T, _CharT) - - inline - char - nsLiteralChar( char c ) - { - return c; - } - - inline - PRUnichar - nsLiteralPRUnichar( PRUnichar c ) - { - return c; - } -#endif class NS_COM nsSubsumeCStr; class NS_COM nsCString : -#ifdef NEW_STRING_APIS public nsAWritableCString, -#endif public nsStr { -#ifdef NEW_STRING_APIS protected: virtual const void* Implementation() const { return "nsCString"; } virtual const char* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual char* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); -#endif public: /** @@ -109,36 +72,16 @@ public: */ nsCString(const nsCString& aString); -#ifdef NEW_STRING_APIS explicit nsCString( const nsAReadableCString& ); - nsCString(const char*); + explicit nsCString(const char*); nsCString(const char*, PRInt32); -#else - /** - * This constructor accepts an isolatin string - * @param aCString is a ptr to a 1-byte cstr - */ - nsCString(const char* aCString,PRInt32 aLength=-1); - - /** - * This constructor accepts a unichar string - * @param aCString is a ptr to a 2-byte cstr - */ -//nsCString(const PRUnichar* aString,PRInt32 aLength=-1); - - /** - * This is a copy constructor that accepts an nsStr - * @param reference to another nsCString - */ -//nsCString(const nsStr&); -#endif /** * This constructor takes a subsumestr * @param reference to subsumestr */ - nsCString(nsSubsumeCStr& aSubsumeStr); + explicit nsCString(nsSubsumeCStr& aSubsumeStr); /** * Destructor @@ -186,17 +129,6 @@ public: SetLength(anIndex); } -#ifndef NEW_STRING_APIS - /** - * Determine whether or not this string has a length of 0 - * - * @return TRUE if empty. - */ - PRBool IsEmpty(void) const { - return PRBool(0==mLength); - } -#endif - /********************************************************************** Accessor methods... *********************************************************************/ @@ -207,49 +139,8 @@ public: */ const char* GetBuffer(void) const; - -#ifndef NEW_STRING_APIS - /** - * Get nth character. - */ - PRUnichar operator[](PRUint32 anIndex) const; - PRUnichar CharAt(PRUint32 anIndex) const; - PRUnichar First(void) const; - PRUnichar Last(void) const; -#endif - PRBool SetCharAt(PRUnichar aChar,PRUint32 anIndex); - /********************************************************************** - String creation methods... - *********************************************************************/ - -#ifndef NEW_STRING_APIS - /** - * Create a new string by appending given string to this - * @param aString -- 2nd string to be appended - * @return new string - */ - nsSubsumeCStr operator+(const nsCString& aString); - - /** - * create a new string by adding this to the given char*. - * @param aCString is a ptr to cstring to be added to this - * @return newly created string - */ - nsSubsumeCStr operator+(const char* aCString); - - - /** - * create a new string by adding this to the given char. - * @param aChar is a char to be added to this - * @return newly created string - */ - nsSubsumeCStr operator+(PRUnichar aChar); - nsSubsumeCStr operator+(char aChar); -#endif - - /********************************************************************** Lexomorphic transforms... *********************************************************************/ @@ -419,50 +310,16 @@ public: */ nsCString& operator=( const nsCString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsCString& operator=( const nsAReadableCString& aReadable ) { Assign(aReadable); return *this; } nsCString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsCString& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsCString& operator=( char aChar ) { Assign(aChar); return *this; } -#endif void AssignWithConversion(const PRUnichar*,PRInt32=-1); void AssignWithConversion( const nsString& aString ); -#ifdef NEW_STRING_APIS void AssignWithConversion( const nsAReadableString& aString ); -#endif void AssignWithConversion(PRUnichar); -#ifndef NEW_STRING_APIS - nsCString& Assign(const char* aString,PRInt32 aCount=-1); - nsCString& Assign(char aChar); - - nsCString& Assign(const nsStr& aString,PRInt32 aCount=-1); -//nsCString& Assign(const PRUnichar* aString,PRInt32 aCount=-1) { AssignWithConversion(aString, aCount); return *this; } -//nsCString& Assign(PRUnichar aChar) { AssignWithConversion(aChar); return *this; } - - /** - * here come a bunch of assignment operators... - * @param aString: string to be added to this - * @return this - */ -//nsCString& operator=(PRUnichar aChar) {AssignWithConversion(aChar); return *this;} - nsCString& operator=(char aChar) {return Assign(aChar);} -//nsCString& operator=(const PRUnichar* aString) {AssignWithConversion(aString); return *this;} - -//nsCString& operator=(const nsStr& aString) {return Assign(aString);} - nsCString& operator=(const char* aCString) {return Assign(aCString);} - - // Yes, I know this makes assignment from a |nsSubsumeString| not do the special thing - // |nsSubsumeString| needs to go away - #if defined(AIX) || defined(XP_OS2_VACPP) - nsCString& operator=(const nsSubsumeCStr& aSubsumeString); // AIX and VAC++ requires a const here - #else - nsCString& operator=(nsSubsumeCStr& aSubsumeString); - #endif -#endif - - /* * Appends n characters from given string to this, * @@ -475,42 +332,13 @@ public: void AppendWithConversion(const nsString&, PRInt32=-1); void AppendWithConversion(PRUnichar aChar); -#ifdef NEW_STRING_APIS void AppendWithConversion( const nsAReadableString& aString ); -#endif void AppendWithConversion(const PRUnichar*, PRInt32=-1); // Why no |AppendWithConversion(const PRUnichar*, PRInt32)|? --- now I know, because implicit construction hid the need for this routine void AppendInt(PRInt32 aInteger,PRInt32 aRadix=10); //radix=8,10 or 16 void AppendFloat( double aFloat ); -#ifdef NEW_STRING_APIS virtual void do_AppendFromReadable( const nsAReadableCString& ); -#endif - -#ifndef NEW_STRING_APIS -//nsCString& Append(const nsStr& aString,PRInt32 aCount=-1); - nsCString& Append(const nsCString& aString,PRInt32 aCount); - nsCString& Append(const nsCString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsCString& Append(const char* aString,PRInt32 aCount=-1); - nsCString& Append(char aChar); - -//nsCString& Append(PRUnichar aChar) {AppendWithConversion(aChar); return *this;} -//nsCString& Append(PRInt32 aInteger,PRInt32 aRadix=10) {AppendInt(aInteger,aRadix); return *this;} -//nsCString& Append(float aFloat) {AppendFloat(aFloat); return *this;} - - /** - * Here's a bunch of methods that append varying types... - * @param various... - * @return this - */ - nsCString& operator+=(const nsCString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsCString& operator+=(const char* aCString) {return Append(aCString);} - -//nsCString& operator+=(const PRUnichar aChar) {return Append(aChar);} - nsCString& operator+=(const char aChar) {return Append(aChar);} -//nsCString& operator+=(const int anInt) {return Append(anInt,10);} -#endif - /* * Copies n characters from this string to given string, * starting at the leftmost offset. @@ -548,57 +376,7 @@ public: void InsertWithConversion(PRUnichar aChar,PRUint32 anOffset); // Why no |InsertWithConversion(PRUnichar*)|? -#ifdef NEW_STRING_APIS virtual void do_InsertFromReadable( const nsAReadableCString&, PRUint32 ); -#endif - -#ifndef NEW_STRING_APIS - /* - * This method inserts n chars from given string into this - * string at str[anOffset]. - * - * @param aCopy -- String to be inserted into this - * @param anOffset -- insertion position within this str - * @param aCount -- number of chars to be copied from aCopy - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return number of chars inserted into this. - */ - void Insert(const nsCString& aCopy,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a given string into this string at - * a specified offset. - * - * @param aString* to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ - void Insert(const char* aChar,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a single char into this string at - * a specified offset. - * - * @param character to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//void Insert(PRUnichar aChar,PRUint32 anOffset) {InsertWithConversion(aChar,anOffset);} - void Insert(char aChar,PRUint32 anOffset); -#endif - - /* - * This method is used to cut characters in this string - * starting at anOffset, continuing for aCount chars. - * - * @param anOffset -- start pos for cut operation - * @param aCount -- number of chars to be cut - * @return *this - */ -#ifndef NEW_STRING_APIS - void Cut(PRUint32 anOffset,PRInt32 aCount); -#endif /********************************************************************** @@ -699,96 +477,6 @@ public: PRBool EqualsIgnoreCase(const char* aString,PRInt32 aCount=-1) const; PRBool EqualsIgnoreCase(const PRUnichar* aString,PRInt32 aCount=-1) const; -#ifndef NEW_STRING_APIS -//virtual PRInt32 Compare(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} -//virtual PRInt32 Compare(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - - virtual PRInt32 Compare(const nsStr &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - /** - * Compare this to given string; note that we compare full strings here. - * The optional length argument just lets us know how long the given string is. - * If you provide a length, it is compared to length of this string as an - * optimization. - * - * @param aString -- the string to compare to this - * @param aCount -- number of chars in given string you want to compare - * @return TRUE if equal - */ - PRBool Equals(const nsString &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - - PRBool Equals(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return EqualsWithConversion(aString,aIgnoreCase,aCount); -//} - - PRBool Equals(const nsStr& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - PRBool EqualsIgnoreCase(const nsStr& aString) const; - - /** - * These methods compare a given string type to this one - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator==(const nsStr &aString) const; - PRBool operator==(const char* aString) const; -//PRBool operator==(const PRUnichar* aString) const; - - /** - * These methods perform a !compare of a given string type to this - * @param aString is the string to be compared to this - * @return TRUE - */ - PRBool operator!=(const nsStr &aString) const; - PRBool operator!=(const char* aString) const; -//PRBool operator!=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is < than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<(const nsStr &aString) const; - PRBool operator<(const char* aString) const; -//PRBool operator<(const PRUnichar* aString) const; - - /** - * These methods test if a given string is > than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>(const nsStr &S) const; - PRBool operator>(const char* aString) const; -//PRBool operator>(const PRUnichar* aString) const; - - /** - * These methods test if a given string is <= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<=(const nsStr &S) const; - PRBool operator<=(const char* aString) const; -//PRBool operator<=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is >= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>=(const nsStr &S) const; - PRBool operator>=(const char* aString) const; -//PRBool operator>=(const PRUnichar* aString) const; -#endif // !defined(NEW_STRING_APIS) void DebugDump(void) const; @@ -799,28 +487,14 @@ public: private: // NOT TO BE IMPLEMENTED // these signatures help clients not accidentally call the wrong thing helped by C++ automatic integral promotion -#ifdef NEW_STRING_APIS void operator=( PRUnichar ); -#endif void AssignWithConversion( char ); void AssignWithConversion( const char*, PRInt32=-1 ); void AppendWithConversion( char ); void InsertWithConversion( char, PRUint32 ); }; -#if 0 // #ifdef NEW_STRING_APIS -inline -nsPromiseConcatenation -operator+( const nsPromiseConcatenation& lhs, const nsCString& rhs ) - { - return nsPromiseConcatenation(lhs, rhs); - } -#endif - -#ifdef NEW_STRING_APIS NS_DEF_STRING_COMPARISON_OPERATORS(nsCString, char) -// NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsCString, char); -#endif extern NS_COM int fputs(const nsCString& aString, FILE* out); //ostream& operator<<(ostream& aStream,const nsCString& aString); @@ -839,27 +513,20 @@ public: virtual ~nsCAutoString(); nsCAutoString(); - nsCAutoString(const nsCString& ); - nsCAutoString(const nsAReadableCString& aString); - nsCAutoString(const char* aString); + explicit nsCAutoString(const nsCString& ); + explicit nsCAutoString(const nsAReadableCString& aString); + explicit nsCAutoString(const char* aString); nsCAutoString(const char* aString,PRInt32 aLength); - nsCAutoString(const CBufDescriptor& aBuffer); - -#ifndef NEW_STRING_APIS -// nsCAutoString(const PRUnichar* aString,PRInt32 aLength=-1); -// nsCAutoString(const nsStr& aString); -// nsCAutoString(PRUnichar aChar); -#endif + explicit nsCAutoString(const CBufDescriptor& aBuffer); #if defined(AIX) || defined(XP_OS2_VACPP) - nsCAutoString(const nsSubsumeCStr& aSubsumeStr); // AIX and VAC++ require a const + explicit nsCAutoString(const nsSubsumeCStr& aSubsumeStr); // AIX and VAC++ require a const #else - nsCAutoString(nsSubsumeCStr& aSubsumeStr); + explicit nsCAutoString(nsSubsumeCStr& aSubsumeStr); #endif // AIX || XP_OS2_VACPP nsCAutoString& operator=( const nsCAutoString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS private: void operator=( PRUnichar ); // NOT TO BE IMPLEMENTED public: @@ -867,13 +534,6 @@ public: nsCAutoString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsCAutoString& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsCAutoString& operator=( char aChar ) { Assign(aChar); return *this; } -#else - nsCAutoString& operator=(const nsCString& aString) {nsCString::Assign(aString); return *this;} - nsCAutoString& operator=(const char* aCString) {nsCString::Assign(aCString); return *this;} -// nsCAutoString& operator=(const PRUnichar* aString) {nsCString::Assign(aString); return *this;} -// nsCAutoString& operator=(PRUnichar aChar) {nsCString::Assign(aChar); return *this;} - nsCAutoString& operator=(char aChar) {nsCString::Assign(aChar); return *this;} -#endif /** * Retrieve the size of this string @@ -884,14 +544,6 @@ public: char mBuffer[kDefaultStringSize]; }; -#if 0//def NEW_STRING_APIS -NS_DEF_STRING_COMPARISON_OPERATORS(nsCAutoString, char) -#endif - -#ifdef NEW_STRING_APIS -NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsCAutoString, char) -#endif - /** * A helper class that converts a UCS2 string to UTF8 */ @@ -902,6 +554,7 @@ class NS_COM NS_ConvertUCS2toUTF8 */ { public: + explicit NS_ConvertUCS2toUTF8( const PRUnichar* aString ) { Append( aString, ~PRUint32(0) /* MAXINT */); @@ -912,14 +565,13 @@ class NS_COM NS_ConvertUCS2toUTF8 Append( aString, aLength ); } + explicit NS_ConvertUCS2toUTF8( PRUnichar aChar ) { Append( &aChar, 1 ); } -#ifdef NEW_STRING_APIS - NS_ConvertUCS2toUTF8( const nsAReadableString& aString ); -#endif + explicit NS_ConvertUCS2toUTF8( const nsAReadableString& aString ); operator const char*() const { @@ -950,19 +602,17 @@ class NS_COM NS_ConvertUCS2toUTF8 ***************************************************************/ class NS_COM nsSubsumeCStr : public nsCString { public: - nsSubsumeCStr(nsStr& aString); + explicit nsSubsumeCStr(nsStr& aString); nsSubsumeCStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr& operator=( const nsSubsumeCStr& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsSubsumeCStr& operator=( const nsAReadableCString& aReadable ) { Assign(aReadable); return *this; } nsSubsumeCStr& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsSubsumeCStr& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsSubsumeCStr& operator=( char aChar ) { Assign(aChar); return *this; } private: void operator=( PRUnichar ); // NOT TO BE IMPLEMENTED -#endif }; diff --git a/mozilla/xpcom/ds/nsString2.cpp b/mozilla/xpcom/ds/nsString2.cpp index 80771e2f607..ad0611f101c 100644 --- a/mozilla/xpcom/ds/nsString2.cpp +++ b/mozilla/xpcom/ds/nsString2.cpp @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -69,25 +67,10 @@ nsString::nsString() { Initialize(*this,eTwoByte); } -#if 0 -/** - * This constructor accepts an ascii string - * @update gess 1/4/99 - * @param aCString is a ptr to a 1-byte cstr - * @param aLength tells us how many chars to copy from given CString - */ -nsString::nsString(const char* aCString,PRInt32 aCount){ - Initialize(*this,eTwoByte); - AssignWithConversion(aCString,aCount); -} -#endif - -#ifdef NEW_STRING_APIS nsString::nsString(const PRUnichar* aString) { Initialize(*this,eTwoByte); Assign(aString); } -#endif /** * This constructor accepts a unicode string @@ -100,18 +83,6 @@ nsString::nsString(const PRUnichar* aString,PRInt32 aCount) { Assign(aString,aCount); } -#if 0 -/** - * This constructor works for all other nsSTr derivatives - * @update gess 1/4/99 - * @param reference to another nsCString - */ -nsString::nsString(const nsStr &aString) { - Initialize(*this,eTwoByte); - StrAssign(*this,aString,0,aString.mLength); -} -#endif - /** * This is our copy constructor * @update gess 1/4/99 @@ -149,7 +120,6 @@ nsString::~nsString() { nsStr::Destroy(*this); } -#ifdef NEW_STRING_APIS const PRUnichar* nsString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const { switch ( aRequest ) { case kFirstFragment: @@ -199,7 +169,6 @@ nsString::nsString( const nsAReadableString& aReadable ) { Initialize(*this,eTwoByte); Assign(aReadable); } -#endif void nsString::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const { if (aResult) { @@ -275,36 +244,6 @@ const PRUnichar* nsString::GetUnicode(void) const { return result; } -#ifndef NEW_STRING_APIS -/** - * Get nth character. - */ -PRUnichar nsString::operator[](PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get nth character. - */ -PRUnichar nsString::CharAt(PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get 1st character. - */ -PRUnichar nsString::First(void) const{ - return GetCharAt(*this,0); -} - -/** - * Get last character. - */ -PRUnichar nsString::Last(void) const{ - return GetCharAt(*this,mLength-1); -} -#endif // !defined(NEW_STRING_APIS) - /** * set a char inside this string at given index * @param aChar is the char you want to write into this string @@ -330,81 +269,6 @@ PRBool nsString::SetCharAt(PRUnichar aChar,PRUint32 anIndex){ append (operator+) METHODS.... *********************************************************/ -#ifndef NEW_STRING_APIS -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const nsStr& aString){ - nsString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeStr(temp); -} - -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const nsString& aString){ - nsString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeStr(temp); -} - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aCString is a ptr to cstring to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const char* aCString) { - nsString temp(*this); - temp.AppendWithConversion(aCString); - return nsSubsumeStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(char aChar) { - nsString temp(*this); - temp.Append(char(aChar)); - return nsSubsumeStr(temp); -} - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aString is a ptr to unistring to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const PRUnichar* aString) { - nsString temp(*this); - temp.Append(aString); - return nsSubsumeStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a unichar to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(PRUnichar aChar) { - nsString temp(*this); - temp.Append(char(aChar)); - return nsSubsumeStr(temp); -} -#endif // !defined(NEW_STRING_APIS) /********************************************************************** Lexomorphic transforms... @@ -952,26 +816,6 @@ PRInt32 nsString::ToInteger(PRInt32* anErrorCode,PRUint32 aRadix) const { *********************************************************************/ -#ifndef NEW_STRING_APIS -/** - * assign given nsStr (or derivative) to this one - * @update gess 01/04/99 - * @param aString: nsStr to be appended - * @return this - */ -nsString& nsString::Assign(const nsStr& aString,PRInt32 aCount) { - if(this!=&aString){ - nsStr::Truncate(*this,0); - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - StrAssign(*this,aString,0,aCount); - } - return *this; -} -#endif /** * assign given char* to this string @@ -989,33 +833,13 @@ void nsString::AssignWithConversion(const char* aCString,PRInt32 aCount) { } } -#ifdef NEW_STRING_APIS void nsString::AssignWithConversion(const char* aCString) { nsStr::Truncate(*this,0); if(aCString){ AppendWithConversion(aCString); } } -#endif -#ifndef NEW_STRING_APIS -/** - * assign given unichar* to this string - * @update gess 01/04/99 - * @param aString: buffer to be assigned to this - * @param aCount -- length of given buffer or -1 if you want me to compute length. - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return this - */ -nsString& nsString::Assign(const PRUnichar* aString,PRInt32 aCount) { - nsStr::Truncate(*this,0); - if(aString){ - Append(aString,aCount); - } - return *this; -} -#endif /** * assign given char to this string @@ -1028,39 +852,6 @@ void nsString::AssignWithConversion(char aChar) { AppendWithConversion(aChar); } -#ifndef NEW_STRING_APIS -/** - * assign given unichar to this string - * @update gess 01/04/99 - * @param aChar: char to be assignd to this - * @return this - */ -nsString& nsString::Assign(PRUnichar aChar) { - nsStr::Truncate(*this,0); - return Append(aChar); -} -#endif - -#ifndef NEW_STRING_APIS -/** - * WARNING! THIS IS A VERY SPECIAL METHOD. - * This method "steals" the contents of aSource and hands it to aDest. - * Ordinarily a copy is made, but not in this version. - * @update gess10/30/98 - * @param - * @return - */ -#if defined(AIX) || defined(XP_OS2_VACPP) -nsString& nsString::operator=(const nsSubsumeStr& aSubsumeString) { - nsSubsumeStr temp(aSubsumeString); // a temp is needed for the AIX and VAC++ compilers - Subsume(*this,temp); -#else - nsString& nsString::operator=(nsSubsumeStr& aSubsumeString) { - Subsume(*this,aSubsumeString); -#endif // AIX || XP_OS2_VACPP - return *this; -} -#endif /** * append given c-string to this string @@ -1169,96 +960,6 @@ void nsString::AppendFloat(double aFloat){ } -#ifndef NEW_STRING_APIS -/** - * append given string to this string; - * @update gess 01/04/99 - * @param aString : string to be appended to this - * @return this - */ -#if 0 -nsString& nsString::Append(const nsStr& aString,PRInt32 aCount) { - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - if(0(const nsString& S) const {return PRBool(Compare(S)>0);} -//PRBool nsString::operator>(const nsStr& S) const {return PRBool(Compare(S)>0);} -//PRBool nsString::operator>(const char* s) const {return PRBool(Compare(s)>0);} -PRBool nsString::operator>(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))>0);} - -PRBool nsString::operator<=(const nsString& S) const {return PRBool(Compare(S)<=0);} -//PRBool nsString::operator<=(const nsStr& S) const {return PRBool(Compare(S)<=0);} -//PRBool nsString::operator<=(const char* s) const {return PRBool(Compare(s)<=0);} -PRBool nsString::operator<=(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))<=0);} - -PRBool nsString::operator>=(const nsString& S) const {return PRBool(Compare(S)>=0);} -//PRBool nsString::operator>=(const nsStr& S) const {return PRBool(Compare(S)>=0);} -//PRBool nsString::operator>=(const char* s) const {return PRBool(Compare(s)>=0);} -PRBool nsString::operator>=(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))>=0);} -#endif // !defined(NEW_STRING_APIS) PRBool nsString::EqualsIgnoreCase(const nsString& aString) const { return EqualsWithConversion(aString,PR_TRUE); @@ -1881,12 +1444,6 @@ PRBool nsString::EqualsIgnoreCase(const char* aString,PRInt32 aLength) const { return EqualsWithConversion(aString,PR_TRUE,aLength); } -#ifndef NEW_STRING_APIS -PRBool nsString::EqualsIgnoreCase(const PRUnichar* s1, const PRUnichar* s2) const { - return Equals(s1,s2,PR_TRUE); -} -#endif - /** * Compare this to given string; note that we compare full strings here. * @@ -1963,40 +1520,6 @@ PRBool nsString::EqualsIgnoreCase(/*FIX: const */nsIAtom *aAtom) const { return EqualsAtom(aAtom,PR_TRUE); } -#ifndef NEW_STRING_APIS -/** - * Compare this to given string; note that we compare full strings here. - * - * @update gess 01/04/99 - * @param aString is the other nsString to be compared to - * @param aCount tells us how many chars to test; -1 implies full length - * @return TRUE if equal - */ -PRBool nsString::Equals(const nsStr& aString,PRBool aIgnoreCase,PRInt32 aCount) const { - PRInt32 theAnswer=nsStr::StrCompare(*this,aString,aCount,aIgnoreCase); - PRBool result=PRBool(0==theAnswer); - return result; -} - -/** - * Compare given strings - * @update gess 7/27/98 - * @param s1 -- first unichar string to be compared - * @param s2 -- second unichar string to be compared - * @return TRUE if equal - */ -PRBool nsString::Equals(const PRUnichar* s1, const PRUnichar* s2,PRBool aIgnoreCase) const { - NS_ASSERTION(0!=s1,kNullPointerError); - NS_ASSERTION(0!=s2,kNullPointerError); - PRBool result=PR_FALSE; - if((s1) && (s2)){ - PRInt32 cmp=(aIgnoreCase) ? nsCRT::strcasecmp(s1,s2) : nsCRT::strcmp(s1,s2); - result=PRBool(0==cmp); - } - - return result; -} -#endif /** * Determine if given char in valid alpha range @@ -2321,21 +1844,6 @@ NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( char aChar ) AppendWithConversion(aChar); } -#if 0 -#ifdef NEW_STRING_APIS -NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( const nsAReadableCString& ) - { - // ... - } -#else -NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( const nsCString& ) - { - // ... - } -#endif -#endif - - void NS_ConvertUTF8toUCS2::Init( const char* aCString, PRUint32 aLength ) { diff --git a/mozilla/xpcom/ds/nsString2.h b/mozilla/xpcom/ds/nsString2.h index 754598dc182..3cb8102a06c 100644 --- a/mozilla/xpcom/ds/nsString2.h +++ b/mozilla/xpcom/ds/nsString2.h @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -39,16 +37,6 @@ 4. Subsumable strings ***********************************************************************/ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - - #ifndef _nsString_ #define _nsString_ @@ -60,9 +48,7 @@ #include "nsStr.h" #include "nsCRT.h" -#ifdef NEW_STRING_APIS #include "nsAWritableString.h" -#endif #ifdef STANDALONE_MI_STRING_TESTS class nsAReadableString { public: virtual ~nsAReadableString() { } }; @@ -78,17 +64,13 @@ class nsISizeOfHandler; class NS_COM nsSubsumeStr; class NS_COM nsString : -#if defined(NEW_STRING_APIS) || defined(STANDALONE_MI_STRING_TESTS) public nsAWritableString, -#endif public nsStr { -#ifdef NEW_STRING_APIS protected: virtual const void* Implementation() const { return "nsString"; } virtual const PRUnichar* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual PRUnichar* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); -#endif public: @@ -103,30 +85,10 @@ public: */ nsString(const nsString& aString); -#ifdef NEW_STRING_APIS explicit nsString(const nsAReadableString&); - nsString(const PRUnichar*); + explicit nsString(const PRUnichar*); nsString(const PRUnichar*, PRInt32); -#else - /** - * This constructor accepts a unichar string - * @param aCString is a ptr to a 2-byte cstr - */ - nsString(const PRUnichar* aString,PRInt32 aCount=-1); - - /** - * This constructor accepts an isolatin string - * @param aCString is a ptr to a 1-byte cstr - */ -//nsString(const char* aCString,PRInt32 aCount=-1); - - /** - * This is a copy constructor that accepts an nsStr - * @param reference to another nsString - */ -//nsString(const nsStr&); -#endif /** @@ -134,9 +96,9 @@ public: * @param reference to subsumestr */ #if defined(AIX) || defined(XP_OS2_VACPP) - nsString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ require a const here + explicit nsString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ require a const here #else - nsString(nsSubsumeStr& aSubsumeStr); + explicit nsString(nsSubsumeStr& aSubsumeStr); #endif /** @@ -198,17 +160,6 @@ public: return result; } -#ifndef NEW_STRING_APIS - /** - * Determine whether or not this string has a length of 0 - * - * @return TRUE if empty. - */ - PRBool IsEmpty(void) const { - return PRBool(0==mLength); - } -#endif - /********************************************************************** Getters/Setters... *********************************************************************/ @@ -219,63 +170,12 @@ public: const char* GetBuffer(void) const; const PRUnichar* GetUnicode(void) const; - -#ifndef NEW_STRING_APIS - /** - * Get nth character. - */ - PRUnichar operator[](PRUint32 anIndex) const; - PRUnichar CharAt(PRUint32 anIndex) const; - PRUnichar First(void) const; - PRUnichar Last(void) const; -#endif // !defined(NEW_STRING_APIS) /** * Set nth character. */ PRBool SetCharAt(PRUnichar aChar,PRUint32 anIndex); -#ifndef NEW_STRING_APIS - /********************************************************************** - String concatenation methods... - *********************************************************************/ - - /** - * Create a new string by appending given string to this - * @param aString -- 2nd string to be appended - * @return new subsumable string - */ - nsSubsumeStr operator+(const nsStr& aString); - nsSubsumeStr operator+(const nsString& aString); - - /** - * create a new string by adding this to the given cstring - * @param aCString is a ptr to cstring to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(const char* aCString); - - /** - * create a new string by adding this to the given prunichar*. - * @param aString is a ptr to UC-string to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(const PRUnichar* aString); - - /** - * create a new string by adding this to the given char. - * @param aChar is a char to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(char aChar); - - /** - * create a new string by adding this to the given char. - * @param aChar is a unichar to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(PRUnichar aChar); -#endif /********************************************************************** Lexomorphic transforms... @@ -449,47 +349,14 @@ public: */ nsString& operator=( const nsString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsString& operator=( const nsAReadableString& aReadable ) { Assign(aReadable); return *this; } nsString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsString& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsString& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } -#endif void AssignWithConversion(char); -#ifdef NEW_STRING_APIS void AssignWithConversion(const char*); void AssignWithConversion(const char*, PRInt32); -#else - void AssignWithConversion(const char*, PRInt32=-1); - - nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1); - nsString& Assign(PRUnichar aChar); - - nsString& Assign(const nsStr& aString,PRInt32 aCount=-1); -//nsString& Assign(const char* aString,PRInt32 aCount=-1) { AssignWithConversion(aString, aCount); return *this; } -//nsString& Assign(char aChar) { AssignWithConversion(aChar); return *this; } - - /** - * here come a bunch of assignment operators... - * @param aString: string to be added to this - * @return this - */ - nsString& operator=(PRUnichar aChar) {Assign(aChar); return *this;} -//nsString& operator=(char aChar) {AssignWithConversion(aChar); return *this;} -//nsString& operator=(const char* aCString) {AssignWithConversion(aCString); return *this;} - -//nsString& operator=(const nsStr& aString) {return Assign(aString);} - nsString& operator=(const PRUnichar* aString) {return Assign(aString);} - - // Yes, I know this makes assignment from a |nsSubsumeString| not do the special thing - // |nsSubsumeString| needs to go away - #if defined(AIX) || defined(XP_OS2_VACPP) - nsString& operator=(const nsSubsumeStr& aSubsumeString); // AIX and VAC++ requires a const here - #else - nsString& operator=(nsSubsumeStr& aSubsumeString); - #endif -#endif /* @@ -507,42 +374,6 @@ public: virtual void do_AppendFromElement( PRUnichar ); -#ifndef NEW_STRING_APIS - /* - * Appends n characters from given string to this, - * - * @param aString is the source to be appended to this - * @param aCount -- number of chars to copy; -1 tells us to compute the strlen for you - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * @return number of chars copied - */ -//nsString& Append(const nsStr& aString,PRInt32 aCount); -//nsString& Append(const nsStr& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& Append(const nsString& aString,PRInt32 aCount); - nsString& Append(const nsString& aString) {return Append(aString,(PRInt32)aString.mLength);} - - nsString& Append(const PRUnichar* aString,PRInt32 aCount=-1); - nsString& Append(PRUnichar aChar); - -//nsString& Append(const char* aString,PRInt32 aCount=-1) { AppendWithConversion(aString,aCount); return *this; } -//nsString& Append(char aChar) { AppendWithConversion(aChar); return *this; } -//nsString& Append(PRInt32 aInteger,PRInt32 aRadix=10) { AppendInt(aInteger,aRadix); return *this; } -//nsString& Append(float aFloat) { AppendFloat(aFloat); return *this; } - - /** - * Here's a bunch of methods that append varying types... - * @param various... - * @return this - */ -//nsString& operator+=(const char* aCString) {return Append(aCString);} -//nsString& operator+=(const char aChar) {return Append((PRUnichar) (unsigned char)aChar);} - nsString& operator+=(const PRUnichar aChar) {return Append(aChar);} -//nsString& operator+=(const int anInt) {return Append(anInt,10);} - -//nsString& operator+=(const nsStr& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& operator+=(const nsString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& operator+=(const PRUnichar* aUCString) {return Append(aUCString);} -#endif /* * Copies n characters from this string to given string, @@ -581,55 +412,6 @@ public: //void InsertWithConversion(char); void InsertWithConversion(const char*, PRUint32, PRInt32=-1); -#ifndef NEW_STRING_APIS - /* - * This method inserts n chars from given string into this - * string at str[anOffset]. - * - * @param aCopy -- String to be inserted into this - * @param anOffset -- insertion position within this str - * @param aCount -- number of chars to be copied from aCopy - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return number of chars inserted into this. - */ - void Insert(const nsString& aCopy,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a given string into this string at - * a specified offset. - * - * @param aString* to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//nsString& Insert(const char* aChar,PRUint32 anOffset,PRInt32 aCount=-1) {InsertWithConversion(aChar, anOffset, aCount); return *this;} - void Insert(const PRUnichar* aChar,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a single char into this string at - * a specified offset. - * - * @param character to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//nsString& Insert(char aChar,PRUint32 anOffset) {InsertWithConversion(aChar,anOffset); return *this;} - void Insert(PRUnichar aChar,PRUint32 anOffset); -#endif - - -#ifndef NEW_STRING_APIS - /* - * This method is used to cut characters in this string - * starting at anOffset, continuing for aCount chars. - * - * @param anOffset -- start pos for cut operation - * @param aCount -- number of chars to be cut - * @return *this - */ - void Cut(PRUint32 anOffset,PRInt32 aCount); -#endif /********************************************************************** @@ -739,110 +521,6 @@ public: PRBool EqualsIgnoreCase(const char* aString,PRInt32 aCount=-1) const; PRBool EqualsIgnoreCase(/*FIX: const */nsIAtom *aAtom) const; -#ifndef NEW_STRING_APIS -//virtual PRInt32 Compare(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - -//virtual PRInt32 Compare(const nsString& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - -//virtual PRInt32 Compare(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - - virtual PRInt32 Compare(const nsStr &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - - /** - * Compare this to given string; note that we compare full strings here. - * The optional length argument just lets us know how long the given string is. - * If you provide a length, it is compared to length of this string as an - * optimization. - * - * @param aString -- the string to compare to this - * @param aCount -- number of chars to be compared. - * @return TRUE if equal - */ - PRBool Equals(const nsString &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return EqualsWithConversion(aString,aIgnoreCase,aCount); -//} - - PRBool Equals(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(/*FIX: const */nsIAtom* anAtom,PRBool aIgnoreCase) const { return EqualsAtom(anAtom, aIgnoreCase); } - PRBool Equals(const PRUnichar* s1, const PRUnichar* s2,PRBool aIgnoreCase=PR_FALSE) const; - PRBool Equals(const nsStr& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - PRBool EqualsIgnoreCase(const PRUnichar* s1, const PRUnichar* s2) const; - - /** - * These methods compare a given string type to this one - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator==(const nsString &aString) const; -//PRBool operator==(const nsStr &aString) const; -//PRBool operator==(const char *aString) const; - PRBool operator==(const PRUnichar* aString) const; - - /** - * These methods perform a !compare of a given string type to this - * @param aString is the string to be compared to this - * @return TRUE - */ - PRBool operator!=(const nsString &aString) const; -//PRBool operator!=(const nsStr &aString) const; -//PRBool operator!=(const char* aString) const; - PRBool operator!=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is < than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<(const nsString &aString) const; -//PRBool operator<(const nsStr &aString) const; -//PRBool operator<(const char* aString) const; - PRBool operator<(const PRUnichar* aString) const; - - /** - * These methods test if a given string is > than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>(const nsString &aString) const; -//PRBool operator>(const nsStr &S) const; -//PRBool operator>(const char* aString) const; - PRBool operator>(const PRUnichar* aString) const; - - /** - * These methods test if a given string is <= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<=(const nsString &aString) const; -//PRBool operator<=(const nsStr &S) const; -//PRBool operator<=(const char* aString) const; - PRBool operator<=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is >= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>=(const nsString &aString) const; -//PRBool operator>=(const nsStr &S) const; -//PRBool operator>=(const char* aString) const; - PRBool operator>=(const PRUnichar* aString) const; -#endif // !defined(NEW_STRING_APIS) /** * Determine if given buffer is plain ascii @@ -884,9 +562,7 @@ public: private: // NOT TO BE IMPLEMENTED // these signatures help clients not accidentally call the wrong thing helped by C++ automatic integral promotion -#ifdef NEW_STRING_APIS void operator=( char ); -#endif void AssignWithConversion( PRUnichar ); void AssignWithConversion( const PRUnichar*, PRInt32=-1 ); void AppendWithConversion( PRUnichar ); @@ -894,19 +570,7 @@ private: void InsertWithConversion( const PRUnichar*, PRUint32, PRInt32=-1 ); }; -#ifdef NEW_STRING_APIS NS_DEF_STRING_COMPARISON_OPERATORS(nsString, PRUnichar) -// NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsString, PRUnichar) -#endif - -#if 0 // #ifdef NEW_STRING_APIS -inline -nsPromiseConcatenation -operator+( const nsPromiseConcatenation& lhs, const nsString& rhs ) - { - return nsPromiseConcatenation(lhs, rhs); - } -#endif extern NS_COM int fputs(const nsString& aString, FILE* out); //ostream& operator<<(ostream& aStream,const nsString& aString); @@ -924,27 +588,21 @@ public: virtual ~nsAutoString(); nsAutoString(); nsAutoString(const nsAutoString& aString); - nsAutoString(const nsAReadableString& aString); - nsAutoString(const nsString& aString); - nsAutoString(const PRUnichar* aString); + explicit nsAutoString(const nsAReadableString& aString); + explicit nsAutoString(const nsString& aString); + explicit nsAutoString(const PRUnichar* aString); nsAutoString(const PRUnichar* aString,PRInt32 aLength); - nsAutoString(PRUnichar aChar); - nsAutoString(const CBufDescriptor& aBuffer); - -#ifndef NEW_STRING_APIS -// nsAutoString(const char* aCString,PRInt32 aLength=-1); -// nsAutoString(const nsStr& aString); -#endif + explicit nsAutoString(PRUnichar aChar); + explicit nsAutoString(const CBufDescriptor& aBuffer); #if defined(AIX) || defined(XP_OS2_VACPP) - nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ requires a const + explicit nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ requires a const #else - nsAutoString(nsSubsumeStr& aSubsumeStr); + explicit nsAutoString(nsSubsumeStr& aSubsumeStr); #endif // AIX || XP_OS2_VACPP nsAutoString& operator=( const nsAutoString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS private: void operator=( char ); // NOT TO BE IMPLEMENTED public: @@ -952,13 +610,6 @@ public: nsAutoString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsAutoString& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsAutoString& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } -#else - nsAutoString& operator=(const nsStr& aString) {nsString::Assign(aString); return *this;} -// nsAutoString& operator=(const char* aCString) {nsString::Assign(aCString); return *this;} -// nsAutoString& operator=(char aChar) {nsString::Assign(aChar); return *this;} - nsAutoString& operator=(const PRUnichar* aBuffer) {nsString::Assign(aBuffer); return *this;} - nsAutoString& operator=(PRUnichar aChar) {nsString::Assign(aChar); return *this;} -#endif /** * Retrieve the size of this string @@ -969,10 +620,6 @@ public: char mBuffer[kDefaultStringSize<& aReadable ) { Assign(aReadable); return *this; } nsSubsumeStr& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsSubsumeStr& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } private: void operator=( char ); // NOT TO BE IMPLEMENTED -#endif }; diff --git a/mozilla/xpcom/string/obsolete/nsStr.h b/mozilla/xpcom/string/obsolete/nsStr.h index d876eee8b70..7c58d84ac33 100644 --- a/mozilla/xpcom/string/obsolete/nsStr.h +++ b/mozilla/xpcom/string/obsolete/nsStr.h @@ -17,22 +17,11 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - /*********************************************************************** MODULE NOTES: @@ -431,21 +420,6 @@ struct NS_COM nsStr { */ static PRUint32 HashCode(const nsStr& aDest); -#ifndef NEW_STRING_APIS - static void Append(nsStr& aDest,const nsStr& aSource,PRUint32 anOffset,PRInt32 aCount) { - StrAppend(aDest, aSource, anOffset, aCount); - } - static void Assign(nsStr& aDest,const nsStr& aSource,PRUint32 anOffset,PRInt32 aCount) { - StrAssign(aDest, aSource, anOffset, aCount); - } - static void Insert( nsStr& aDest,PRUint32 aDestOffset,const nsStr& aSource,PRUint32 aSrcOffset,PRInt32 aCount) { - StrInsert(aDest, aDestOffset, aSource, aSrcOffset, aCount); - } - static PRInt32 Compare(const nsStr& aDest,const nsStr& aSource,PRInt32 aCount,PRBool aIgnoreCase) { - return StrCompare(aDest, aSource, aCount, aIgnoreCase); - } -#endif - #ifdef NS_STR_STATS /** * Prints an nsStr. If truncate is true, the string is only printed up to diff --git a/mozilla/xpcom/string/obsolete/nsString.cpp b/mozilla/xpcom/string/obsolete/nsString.cpp index 5fcee41354b..ff3129d4c0e 100644 --- a/mozilla/xpcom/string/obsolete/nsString.cpp +++ b/mozilla/xpcom/string/obsolete/nsString.cpp @@ -70,12 +70,10 @@ nsCString::nsCString() { Initialize(*this,eOneByte); } -#ifdef NEW_STRING_APIS nsCString::nsCString(const char* aCString) { Initialize(*this,eOneByte); Assign(aCString); } -#endif /** * This constructor accepts an ascii string @@ -137,7 +135,6 @@ nsCString::~nsCString() { Destroy(*this); } -#ifdef NEW_STRING_APIS const char* nsCString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const { switch ( aRequest ) { case kFirstFragment: @@ -172,7 +169,6 @@ nsCString::nsCString( const nsAReadableCString& aReadable ) { Initialize(*this,eOneByte); Assign(aReadable); } -#endif void nsCString::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const { if (aResult) { @@ -232,35 +228,6 @@ const char* nsCString::GetBuffer(void) const { return mStr; } -#ifndef NEW_STRING_APIS -/** - * Get nth character. - */ -PRUnichar nsCString::operator[](PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get nth character. - */ -PRUnichar nsCString::CharAt(PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get 1st character. - */ -PRUnichar nsCString::First(void) const{ - return GetCharAt(*this,0); -} - -/** - * Get last character. - */ -PRUnichar nsCString::Last(void) const{ - return (char)GetCharAt(*this,mLength-1); -} -#endif // !defined(NEW_STRING_APIS) /** * set a char inside this string at given index @@ -281,57 +248,6 @@ PRBool nsCString::SetCharAt(PRUnichar aChar,PRUint32 anIndex){ /********************************************************* append (operator+) METHODS.... *********************************************************/ -#ifndef NEW_STRING_APIS -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeCStr nsCString::operator+(const nsCString& aString){ - nsCString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeCStr(temp); -} - - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aCString is a ptr to cstring to be added to this - * @return newly created subsumable string - */ -nsSubsumeCStr nsCString::operator+(const char* aCString) { - nsCString temp(*this); - temp.Append(aCString); - return nsSubsumeCStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return newly created subsumable string - */ -nsSubsumeCStr nsCString::operator+(PRUnichar aChar) { - nsCString temp(*this); - temp.Append(aChar); - return nsSubsumeCStr(temp); -} - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return newly created string - */ -nsSubsumeCStr nsCString::operator+(char aChar) { - nsCString temp(*this); - temp.Append(aChar); - return nsSubsumeCStr(temp); -} -#endif // !defined(NEW_STRING_APIS) /********************************************************************** Lexomorphic transforms... @@ -843,73 +759,6 @@ PRInt32 nsCString::ToInteger(PRInt32* anErrorCode,PRUint32 aRadix) const { String manipulation methods... *********************************************************************/ -#ifndef NEW_STRING_APIS -/** - * assign given nsStr (or derivative) to this one - * @update gess 01/04/99 - * @param aString: string to be appended - * @return this - */ -nsCString& nsCString::Assign(const nsStr& aString,PRInt32 aCount) { - if(this!=&aString){ - nsStr::Truncate(*this,0); - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - StrAssign(*this,aString,0,aCount); - } - return *this; -} - -/** - * assign given char* to this string - * @update gess 01/04/99 - * @param aCString: buffer to be assigned to this - * @param aCount -- length of given buffer or -1 if you want me to compute length. - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return this - */ -nsCString& nsCString::Assign(const char* aCString,PRInt32 aCount) { - nsStr::Truncate(*this,0); - if(aCString){ - Append(aCString,aCount); - } - return *this; -} - -/** - * assign given char to this string - * @update gess 01/04/99 - * @param aChar: char to be assignd to this - * @return this - */ -nsCString& nsCString::Assign(char aChar) { - nsStr::Truncate(*this,0); - return Append(aChar); -} - -/** - * WARNING! THIS IS A VERY SPECIAL METHOD. - * This method "steals" the contents of aSource and hands it to aDest. - * Ordinarily a copy is made, but not in this version. - * @update gess10/30/98 - * @param - * @return - */ -#if defined(AIX) || defined(XP_OS2_VACPP) -nsCString& nsCString::operator=(const nsSubsumeCStr& aSubsumeString) { - nsSubsumeCStr temp(aSubsumeString); // a temp is needed for the AIX and VAC++ compiler - CSubsume(*this,temp); -#else -nsCString& nsCString::operator=(nsSubsumeCStr& aSubsumeString) { - CSubsume(*this,aSubsumeString); -#endif // AIX || XP_OS2_VACPP - return *this; -} -#endif /** * assign given unichar* to this string @@ -952,7 +801,6 @@ void nsCString::AssignWithConversion( const nsString& aString ) { AssignWithConversion(aString.GetUnicode(), aString.Length()); } -#ifdef NEW_STRING_APIS void nsCString::AssignWithConversion( const nsAReadableString& aString ) { nsStr::Truncate(*this,0); PRInt32 count = aString.Length(); @@ -976,9 +824,7 @@ void nsCString::AssignWithConversion( const nsAReadableString& aString ) { } } } -#endif -#ifdef NEW_STRING_APIS void nsCString::AppendWithConversion( const nsAReadableString& aString ) { PRInt32 count = aString.Length(); @@ -1001,7 +847,6 @@ void nsCString::AppendWithConversion( const nsAReadableString& aString ) { } } } -#endif /** * assign given unichar to this string @@ -1014,7 +859,6 @@ void nsCString::AssignWithConversion(PRUnichar aChar) { AppendWithConversion(aChar); } -#ifdef NEW_STRING_APIS void nsCString::do_AppendFromReadable( const nsAReadableCString& aReadable ) { if ( SameImplementation( NS_STATIC_CAST(const nsAReadableCString&, *this), aReadable) ) @@ -1022,87 +866,7 @@ void nsCString::do_AppendFromReadable( const nsAReadableCString& aReadable ) else nsAWritableCString::do_AppendFromReadable(aReadable); } -#endif -#ifndef NEW_STRING_APIS -/** - * append given string to this string - * @update gess 01/04/99 - * @param aString : string to be appended to this - * @return this - */ -nsCString& nsCString::Append(const nsCString& aString,PRInt32 aCount) { - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - if(0(const nsStr& S) const {return PRBool(Compare(S)>0);} -PRBool nsCString::operator>(const char* s) const {return PRBool(Compare(nsCAutoString(s))>0);} -//PRBool nsCString::operator>(const PRUnichar* s) const {return PRBool(Compare(s)>0);} - -PRBool nsCString::operator<=(const nsStr& S) const {return PRBool(Compare(S)<=0);} -PRBool nsCString::operator<=(const char* s) const {return PRBool(Compare(nsCAutoString(s))<=0);} -//PRBool nsCString::operator<=(const PRUnichar* s) const {return PRBool(Compare(s)<=0);} - -PRBool nsCString::operator>=(const nsStr& S) const {return PRBool(Compare(S)>=0);} -PRBool nsCString::operator>=(const char* s) const {return PRBool(Compare(nsCAutoString(s))>=0);} -//PRBool nsCString::operator>=(const PRUnichar* s) const {return PRBool(Compare(s)>=0);} -#endif - -#ifndef NEW_STRING_APIS -PRBool nsCString::EqualsIgnoreCase(const nsStr& aString) const { - return Equals(aString,PR_TRUE); -} -#endif - PRBool nsCString::EqualsIgnoreCase(const char* aString,PRInt32 aLength) const { return EqualsWithConversion(aString,PR_TRUE,aLength); } @@ -1734,22 +1359,6 @@ PRBool nsCString::EqualsIgnoreCase(const PRUnichar* aString,PRInt32 aLength) con } -#ifndef NEW_STRING_APIS -/** - * Compare this to given string; note that we compare full strings here. - * - * @update gess 01/04/99 - * @param aString is the other nsCString to be compared to - * @param aIgnoreCase tells us how to treat case - * @param aCount tells us how many chars to test; -1 implies full length - * @return TRUE if equal - */ -PRBool nsCString::Equals(const nsStr& aString,PRBool aIgnoreCase,PRInt32 aCount) const { - PRInt32 theAnswer=nsStr::StrCompare(*this,aString,aCount,aIgnoreCase); - PRBool result=PRBool(0==theAnswer); - return result; -} -#endif /** * Compare this to given string; note that we compare full strings here. @@ -1935,7 +1544,6 @@ void nsCString::DebugDump(void) const { //---------------------------------------------------------------------- -#ifdef NEW_STRING_APIS NS_ConvertUCS2toUTF8::NS_ConvertUCS2toUTF8( const nsAReadableString& aString ) { nsReadingIterator start(aString.BeginReading()); @@ -1947,7 +1555,6 @@ NS_ConvertUCS2toUTF8::NS_ConvertUCS2toUTF8( const nsAReadableString& aString ) start += start.size_forward(); } } -#endif void NS_ConvertUCS2toUTF8::Append( const PRUnichar* aString, PRUint32 aLength ) diff --git a/mozilla/xpcom/string/obsolete/nsString.h b/mozilla/xpcom/string/obsolete/nsString.h index ca40d024a8a..d928602d75c 100644 --- a/mozilla/xpcom/string/obsolete/nsString.h +++ b/mozilla/xpcom/string/obsolete/nsString.h @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -38,15 +36,6 @@ 4. Subsumable strings ***********************************************************************/ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - #ifndef _nsCString_ #define _nsCString_ @@ -57,45 +46,19 @@ #include "nsStr.h" #include "nsIAtom.h" -#ifdef NEW_STRING_APIS #include "nsAWritableString.h" -#else - #define NS_LITERAL_STRING(s) (s) - #define NS_LITERAL_CSTRING(s) (s) - - #define NS_DEF_DERIVED_STRING_OPERATOR_PLUS(_StringT, _CharT) - #define NS_DEF_2_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T, _CharT) - - inline - char - nsLiteralChar( char c ) - { - return c; - } - - inline - PRUnichar - nsLiteralPRUnichar( PRUnichar c ) - { - return c; - } -#endif class NS_COM nsSubsumeCStr; class NS_COM nsCString : -#ifdef NEW_STRING_APIS public nsAWritableCString, -#endif public nsStr { -#ifdef NEW_STRING_APIS protected: virtual const void* Implementation() const { return "nsCString"; } virtual const char* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual char* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); -#endif public: /** @@ -109,36 +72,16 @@ public: */ nsCString(const nsCString& aString); -#ifdef NEW_STRING_APIS explicit nsCString( const nsAReadableCString& ); - nsCString(const char*); + explicit nsCString(const char*); nsCString(const char*, PRInt32); -#else - /** - * This constructor accepts an isolatin string - * @param aCString is a ptr to a 1-byte cstr - */ - nsCString(const char* aCString,PRInt32 aLength=-1); - - /** - * This constructor accepts a unichar string - * @param aCString is a ptr to a 2-byte cstr - */ -//nsCString(const PRUnichar* aString,PRInt32 aLength=-1); - - /** - * This is a copy constructor that accepts an nsStr - * @param reference to another nsCString - */ -//nsCString(const nsStr&); -#endif /** * This constructor takes a subsumestr * @param reference to subsumestr */ - nsCString(nsSubsumeCStr& aSubsumeStr); + explicit nsCString(nsSubsumeCStr& aSubsumeStr); /** * Destructor @@ -186,17 +129,6 @@ public: SetLength(anIndex); } -#ifndef NEW_STRING_APIS - /** - * Determine whether or not this string has a length of 0 - * - * @return TRUE if empty. - */ - PRBool IsEmpty(void) const { - return PRBool(0==mLength); - } -#endif - /********************************************************************** Accessor methods... *********************************************************************/ @@ -207,49 +139,8 @@ public: */ const char* GetBuffer(void) const; - -#ifndef NEW_STRING_APIS - /** - * Get nth character. - */ - PRUnichar operator[](PRUint32 anIndex) const; - PRUnichar CharAt(PRUint32 anIndex) const; - PRUnichar First(void) const; - PRUnichar Last(void) const; -#endif - PRBool SetCharAt(PRUnichar aChar,PRUint32 anIndex); - /********************************************************************** - String creation methods... - *********************************************************************/ - -#ifndef NEW_STRING_APIS - /** - * Create a new string by appending given string to this - * @param aString -- 2nd string to be appended - * @return new string - */ - nsSubsumeCStr operator+(const nsCString& aString); - - /** - * create a new string by adding this to the given char*. - * @param aCString is a ptr to cstring to be added to this - * @return newly created string - */ - nsSubsumeCStr operator+(const char* aCString); - - - /** - * create a new string by adding this to the given char. - * @param aChar is a char to be added to this - * @return newly created string - */ - nsSubsumeCStr operator+(PRUnichar aChar); - nsSubsumeCStr operator+(char aChar); -#endif - - /********************************************************************** Lexomorphic transforms... *********************************************************************/ @@ -419,50 +310,16 @@ public: */ nsCString& operator=( const nsCString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsCString& operator=( const nsAReadableCString& aReadable ) { Assign(aReadable); return *this; } nsCString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsCString& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsCString& operator=( char aChar ) { Assign(aChar); return *this; } -#endif void AssignWithConversion(const PRUnichar*,PRInt32=-1); void AssignWithConversion( const nsString& aString ); -#ifdef NEW_STRING_APIS void AssignWithConversion( const nsAReadableString& aString ); -#endif void AssignWithConversion(PRUnichar); -#ifndef NEW_STRING_APIS - nsCString& Assign(const char* aString,PRInt32 aCount=-1); - nsCString& Assign(char aChar); - - nsCString& Assign(const nsStr& aString,PRInt32 aCount=-1); -//nsCString& Assign(const PRUnichar* aString,PRInt32 aCount=-1) { AssignWithConversion(aString, aCount); return *this; } -//nsCString& Assign(PRUnichar aChar) { AssignWithConversion(aChar); return *this; } - - /** - * here come a bunch of assignment operators... - * @param aString: string to be added to this - * @return this - */ -//nsCString& operator=(PRUnichar aChar) {AssignWithConversion(aChar); return *this;} - nsCString& operator=(char aChar) {return Assign(aChar);} -//nsCString& operator=(const PRUnichar* aString) {AssignWithConversion(aString); return *this;} - -//nsCString& operator=(const nsStr& aString) {return Assign(aString);} - nsCString& operator=(const char* aCString) {return Assign(aCString);} - - // Yes, I know this makes assignment from a |nsSubsumeString| not do the special thing - // |nsSubsumeString| needs to go away - #if defined(AIX) || defined(XP_OS2_VACPP) - nsCString& operator=(const nsSubsumeCStr& aSubsumeString); // AIX and VAC++ requires a const here - #else - nsCString& operator=(nsSubsumeCStr& aSubsumeString); - #endif -#endif - - /* * Appends n characters from given string to this, * @@ -475,42 +332,13 @@ public: void AppendWithConversion(const nsString&, PRInt32=-1); void AppendWithConversion(PRUnichar aChar); -#ifdef NEW_STRING_APIS void AppendWithConversion( const nsAReadableString& aString ); -#endif void AppendWithConversion(const PRUnichar*, PRInt32=-1); // Why no |AppendWithConversion(const PRUnichar*, PRInt32)|? --- now I know, because implicit construction hid the need for this routine void AppendInt(PRInt32 aInteger,PRInt32 aRadix=10); //radix=8,10 or 16 void AppendFloat( double aFloat ); -#ifdef NEW_STRING_APIS virtual void do_AppendFromReadable( const nsAReadableCString& ); -#endif - -#ifndef NEW_STRING_APIS -//nsCString& Append(const nsStr& aString,PRInt32 aCount=-1); - nsCString& Append(const nsCString& aString,PRInt32 aCount); - nsCString& Append(const nsCString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsCString& Append(const char* aString,PRInt32 aCount=-1); - nsCString& Append(char aChar); - -//nsCString& Append(PRUnichar aChar) {AppendWithConversion(aChar); return *this;} -//nsCString& Append(PRInt32 aInteger,PRInt32 aRadix=10) {AppendInt(aInteger,aRadix); return *this;} -//nsCString& Append(float aFloat) {AppendFloat(aFloat); return *this;} - - /** - * Here's a bunch of methods that append varying types... - * @param various... - * @return this - */ - nsCString& operator+=(const nsCString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsCString& operator+=(const char* aCString) {return Append(aCString);} - -//nsCString& operator+=(const PRUnichar aChar) {return Append(aChar);} - nsCString& operator+=(const char aChar) {return Append(aChar);} -//nsCString& operator+=(const int anInt) {return Append(anInt,10);} -#endif - /* * Copies n characters from this string to given string, * starting at the leftmost offset. @@ -548,57 +376,7 @@ public: void InsertWithConversion(PRUnichar aChar,PRUint32 anOffset); // Why no |InsertWithConversion(PRUnichar*)|? -#ifdef NEW_STRING_APIS virtual void do_InsertFromReadable( const nsAReadableCString&, PRUint32 ); -#endif - -#ifndef NEW_STRING_APIS - /* - * This method inserts n chars from given string into this - * string at str[anOffset]. - * - * @param aCopy -- String to be inserted into this - * @param anOffset -- insertion position within this str - * @param aCount -- number of chars to be copied from aCopy - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return number of chars inserted into this. - */ - void Insert(const nsCString& aCopy,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a given string into this string at - * a specified offset. - * - * @param aString* to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ - void Insert(const char* aChar,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a single char into this string at - * a specified offset. - * - * @param character to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//void Insert(PRUnichar aChar,PRUint32 anOffset) {InsertWithConversion(aChar,anOffset);} - void Insert(char aChar,PRUint32 anOffset); -#endif - - /* - * This method is used to cut characters in this string - * starting at anOffset, continuing for aCount chars. - * - * @param anOffset -- start pos for cut operation - * @param aCount -- number of chars to be cut - * @return *this - */ -#ifndef NEW_STRING_APIS - void Cut(PRUint32 anOffset,PRInt32 aCount); -#endif /********************************************************************** @@ -699,96 +477,6 @@ public: PRBool EqualsIgnoreCase(const char* aString,PRInt32 aCount=-1) const; PRBool EqualsIgnoreCase(const PRUnichar* aString,PRInt32 aCount=-1) const; -#ifndef NEW_STRING_APIS -//virtual PRInt32 Compare(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} -//virtual PRInt32 Compare(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - - virtual PRInt32 Compare(const nsStr &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - /** - * Compare this to given string; note that we compare full strings here. - * The optional length argument just lets us know how long the given string is. - * If you provide a length, it is compared to length of this string as an - * optimization. - * - * @param aString -- the string to compare to this - * @param aCount -- number of chars in given string you want to compare - * @return TRUE if equal - */ - PRBool Equals(const nsString &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - - PRBool Equals(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return EqualsWithConversion(aString,aIgnoreCase,aCount); -//} - - PRBool Equals(const nsStr& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - PRBool EqualsIgnoreCase(const nsStr& aString) const; - - /** - * These methods compare a given string type to this one - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator==(const nsStr &aString) const; - PRBool operator==(const char* aString) const; -//PRBool operator==(const PRUnichar* aString) const; - - /** - * These methods perform a !compare of a given string type to this - * @param aString is the string to be compared to this - * @return TRUE - */ - PRBool operator!=(const nsStr &aString) const; - PRBool operator!=(const char* aString) const; -//PRBool operator!=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is < than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<(const nsStr &aString) const; - PRBool operator<(const char* aString) const; -//PRBool operator<(const PRUnichar* aString) const; - - /** - * These methods test if a given string is > than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>(const nsStr &S) const; - PRBool operator>(const char* aString) const; -//PRBool operator>(const PRUnichar* aString) const; - - /** - * These methods test if a given string is <= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<=(const nsStr &S) const; - PRBool operator<=(const char* aString) const; -//PRBool operator<=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is >= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>=(const nsStr &S) const; - PRBool operator>=(const char* aString) const; -//PRBool operator>=(const PRUnichar* aString) const; -#endif // !defined(NEW_STRING_APIS) void DebugDump(void) const; @@ -799,28 +487,14 @@ public: private: // NOT TO BE IMPLEMENTED // these signatures help clients not accidentally call the wrong thing helped by C++ automatic integral promotion -#ifdef NEW_STRING_APIS void operator=( PRUnichar ); -#endif void AssignWithConversion( char ); void AssignWithConversion( const char*, PRInt32=-1 ); void AppendWithConversion( char ); void InsertWithConversion( char, PRUint32 ); }; -#if 0 // #ifdef NEW_STRING_APIS -inline -nsPromiseConcatenation -operator+( const nsPromiseConcatenation& lhs, const nsCString& rhs ) - { - return nsPromiseConcatenation(lhs, rhs); - } -#endif - -#ifdef NEW_STRING_APIS NS_DEF_STRING_COMPARISON_OPERATORS(nsCString, char) -// NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsCString, char); -#endif extern NS_COM int fputs(const nsCString& aString, FILE* out); //ostream& operator<<(ostream& aStream,const nsCString& aString); @@ -839,27 +513,20 @@ public: virtual ~nsCAutoString(); nsCAutoString(); - nsCAutoString(const nsCString& ); - nsCAutoString(const nsAReadableCString& aString); - nsCAutoString(const char* aString); + explicit nsCAutoString(const nsCString& ); + explicit nsCAutoString(const nsAReadableCString& aString); + explicit nsCAutoString(const char* aString); nsCAutoString(const char* aString,PRInt32 aLength); - nsCAutoString(const CBufDescriptor& aBuffer); - -#ifndef NEW_STRING_APIS -// nsCAutoString(const PRUnichar* aString,PRInt32 aLength=-1); -// nsCAutoString(const nsStr& aString); -// nsCAutoString(PRUnichar aChar); -#endif + explicit nsCAutoString(const CBufDescriptor& aBuffer); #if defined(AIX) || defined(XP_OS2_VACPP) - nsCAutoString(const nsSubsumeCStr& aSubsumeStr); // AIX and VAC++ require a const + explicit nsCAutoString(const nsSubsumeCStr& aSubsumeStr); // AIX and VAC++ require a const #else - nsCAutoString(nsSubsumeCStr& aSubsumeStr); + explicit nsCAutoString(nsSubsumeCStr& aSubsumeStr); #endif // AIX || XP_OS2_VACPP nsCAutoString& operator=( const nsCAutoString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS private: void operator=( PRUnichar ); // NOT TO BE IMPLEMENTED public: @@ -867,13 +534,6 @@ public: nsCAutoString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsCAutoString& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsCAutoString& operator=( char aChar ) { Assign(aChar); return *this; } -#else - nsCAutoString& operator=(const nsCString& aString) {nsCString::Assign(aString); return *this;} - nsCAutoString& operator=(const char* aCString) {nsCString::Assign(aCString); return *this;} -// nsCAutoString& operator=(const PRUnichar* aString) {nsCString::Assign(aString); return *this;} -// nsCAutoString& operator=(PRUnichar aChar) {nsCString::Assign(aChar); return *this;} - nsCAutoString& operator=(char aChar) {nsCString::Assign(aChar); return *this;} -#endif /** * Retrieve the size of this string @@ -884,14 +544,6 @@ public: char mBuffer[kDefaultStringSize]; }; -#if 0//def NEW_STRING_APIS -NS_DEF_STRING_COMPARISON_OPERATORS(nsCAutoString, char) -#endif - -#ifdef NEW_STRING_APIS -NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsCAutoString, char) -#endif - /** * A helper class that converts a UCS2 string to UTF8 */ @@ -902,6 +554,7 @@ class NS_COM NS_ConvertUCS2toUTF8 */ { public: + explicit NS_ConvertUCS2toUTF8( const PRUnichar* aString ) { Append( aString, ~PRUint32(0) /* MAXINT */); @@ -912,14 +565,13 @@ class NS_COM NS_ConvertUCS2toUTF8 Append( aString, aLength ); } + explicit NS_ConvertUCS2toUTF8( PRUnichar aChar ) { Append( &aChar, 1 ); } -#ifdef NEW_STRING_APIS - NS_ConvertUCS2toUTF8( const nsAReadableString& aString ); -#endif + explicit NS_ConvertUCS2toUTF8( const nsAReadableString& aString ); operator const char*() const { @@ -950,19 +602,17 @@ class NS_COM NS_ConvertUCS2toUTF8 ***************************************************************/ class NS_COM nsSubsumeCStr : public nsCString { public: - nsSubsumeCStr(nsStr& aString); + explicit nsSubsumeCStr(nsStr& aString); nsSubsumeCStr(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLength=-1); nsSubsumeCStr& operator=( const nsSubsumeCStr& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsSubsumeCStr& operator=( const nsAReadableCString& aReadable ) { Assign(aReadable); return *this; } nsSubsumeCStr& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsSubsumeCStr& operator=( const char* aPtr ) { Assign(aPtr); return *this; } nsSubsumeCStr& operator=( char aChar ) { Assign(aChar); return *this; } private: void operator=( PRUnichar ); // NOT TO BE IMPLEMENTED -#endif }; diff --git a/mozilla/xpcom/string/obsolete/nsString2.cpp b/mozilla/xpcom/string/obsolete/nsString2.cpp index 80771e2f607..ad0611f101c 100644 --- a/mozilla/xpcom/string/obsolete/nsString2.cpp +++ b/mozilla/xpcom/string/obsolete/nsString2.cpp @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -69,25 +67,10 @@ nsString::nsString() { Initialize(*this,eTwoByte); } -#if 0 -/** - * This constructor accepts an ascii string - * @update gess 1/4/99 - * @param aCString is a ptr to a 1-byte cstr - * @param aLength tells us how many chars to copy from given CString - */ -nsString::nsString(const char* aCString,PRInt32 aCount){ - Initialize(*this,eTwoByte); - AssignWithConversion(aCString,aCount); -} -#endif - -#ifdef NEW_STRING_APIS nsString::nsString(const PRUnichar* aString) { Initialize(*this,eTwoByte); Assign(aString); } -#endif /** * This constructor accepts a unicode string @@ -100,18 +83,6 @@ nsString::nsString(const PRUnichar* aString,PRInt32 aCount) { Assign(aString,aCount); } -#if 0 -/** - * This constructor works for all other nsSTr derivatives - * @update gess 1/4/99 - * @param reference to another nsCString - */ -nsString::nsString(const nsStr &aString) { - Initialize(*this,eTwoByte); - StrAssign(*this,aString,0,aString.mLength); -} -#endif - /** * This is our copy constructor * @update gess 1/4/99 @@ -149,7 +120,6 @@ nsString::~nsString() { nsStr::Destroy(*this); } -#ifdef NEW_STRING_APIS const PRUnichar* nsString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const { switch ( aRequest ) { case kFirstFragment: @@ -199,7 +169,6 @@ nsString::nsString( const nsAReadableString& aReadable ) { Initialize(*this,eTwoByte); Assign(aReadable); } -#endif void nsString::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const { if (aResult) { @@ -275,36 +244,6 @@ const PRUnichar* nsString::GetUnicode(void) const { return result; } -#ifndef NEW_STRING_APIS -/** - * Get nth character. - */ -PRUnichar nsString::operator[](PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get nth character. - */ -PRUnichar nsString::CharAt(PRUint32 anIndex) const { - return GetCharAt(*this,anIndex); -} - -/** - * Get 1st character. - */ -PRUnichar nsString::First(void) const{ - return GetCharAt(*this,0); -} - -/** - * Get last character. - */ -PRUnichar nsString::Last(void) const{ - return GetCharAt(*this,mLength-1); -} -#endif // !defined(NEW_STRING_APIS) - /** * set a char inside this string at given index * @param aChar is the char you want to write into this string @@ -330,81 +269,6 @@ PRBool nsString::SetCharAt(PRUnichar aChar,PRUint32 anIndex){ append (operator+) METHODS.... *********************************************************/ -#ifndef NEW_STRING_APIS -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const nsStr& aString){ - nsString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeStr(temp); -} - -/** - * Create a new string by appending given string to this - * @update gess 01/04/99 - * @param aString -- 2nd string to be appended - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const nsString& aString){ - nsString temp(*this); //make a temp string the same size as this... - nsStr::StrAppend(temp,aString,0,aString.mLength); - return nsSubsumeStr(temp); -} - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aCString is a ptr to cstring to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const char* aCString) { - nsString temp(*this); - temp.AppendWithConversion(aCString); - return nsSubsumeStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a char to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(char aChar) { - nsString temp(*this); - temp.Append(char(aChar)); - return nsSubsumeStr(temp); -} - -/** - * create a new string by adding this to the given buffer. - * @update gess 01/04/99 - * @param aString is a ptr to unistring to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(const PRUnichar* aString) { - nsString temp(*this); - temp.Append(aString); - return nsSubsumeStr(temp); -} - - -/** - * create a new string by adding this to the given char. - * @update gess 01/04/99 - * @param aChar is a unichar to be added to this - * @return new subsumeable string (this makes things faster by reducing copying) - */ -nsSubsumeStr nsString::operator+(PRUnichar aChar) { - nsString temp(*this); - temp.Append(char(aChar)); - return nsSubsumeStr(temp); -} -#endif // !defined(NEW_STRING_APIS) /********************************************************************** Lexomorphic transforms... @@ -952,26 +816,6 @@ PRInt32 nsString::ToInteger(PRInt32* anErrorCode,PRUint32 aRadix) const { *********************************************************************/ -#ifndef NEW_STRING_APIS -/** - * assign given nsStr (or derivative) to this one - * @update gess 01/04/99 - * @param aString: nsStr to be appended - * @return this - */ -nsString& nsString::Assign(const nsStr& aString,PRInt32 aCount) { - if(this!=&aString){ - nsStr::Truncate(*this,0); - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - StrAssign(*this,aString,0,aCount); - } - return *this; -} -#endif /** * assign given char* to this string @@ -989,33 +833,13 @@ void nsString::AssignWithConversion(const char* aCString,PRInt32 aCount) { } } -#ifdef NEW_STRING_APIS void nsString::AssignWithConversion(const char* aCString) { nsStr::Truncate(*this,0); if(aCString){ AppendWithConversion(aCString); } } -#endif -#ifndef NEW_STRING_APIS -/** - * assign given unichar* to this string - * @update gess 01/04/99 - * @param aString: buffer to be assigned to this - * @param aCount -- length of given buffer or -1 if you want me to compute length. - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return this - */ -nsString& nsString::Assign(const PRUnichar* aString,PRInt32 aCount) { - nsStr::Truncate(*this,0); - if(aString){ - Append(aString,aCount); - } - return *this; -} -#endif /** * assign given char to this string @@ -1028,39 +852,6 @@ void nsString::AssignWithConversion(char aChar) { AppendWithConversion(aChar); } -#ifndef NEW_STRING_APIS -/** - * assign given unichar to this string - * @update gess 01/04/99 - * @param aChar: char to be assignd to this - * @return this - */ -nsString& nsString::Assign(PRUnichar aChar) { - nsStr::Truncate(*this,0); - return Append(aChar); -} -#endif - -#ifndef NEW_STRING_APIS -/** - * WARNING! THIS IS A VERY SPECIAL METHOD. - * This method "steals" the contents of aSource and hands it to aDest. - * Ordinarily a copy is made, but not in this version. - * @update gess10/30/98 - * @param - * @return - */ -#if defined(AIX) || defined(XP_OS2_VACPP) -nsString& nsString::operator=(const nsSubsumeStr& aSubsumeString) { - nsSubsumeStr temp(aSubsumeString); // a temp is needed for the AIX and VAC++ compilers - Subsume(*this,temp); -#else - nsString& nsString::operator=(nsSubsumeStr& aSubsumeString) { - Subsume(*this,aSubsumeString); -#endif // AIX || XP_OS2_VACPP - return *this; -} -#endif /** * append given c-string to this string @@ -1169,96 +960,6 @@ void nsString::AppendFloat(double aFloat){ } -#ifndef NEW_STRING_APIS -/** - * append given string to this string; - * @update gess 01/04/99 - * @param aString : string to be appended to this - * @return this - */ -#if 0 -nsString& nsString::Append(const nsStr& aString,PRInt32 aCount) { - - if(aCount<0) - aCount=aString.mLength; - else aCount=MinInt(aCount,aString.mLength); - - if(0(const nsString& S) const {return PRBool(Compare(S)>0);} -//PRBool nsString::operator>(const nsStr& S) const {return PRBool(Compare(S)>0);} -//PRBool nsString::operator>(const char* s) const {return PRBool(Compare(s)>0);} -PRBool nsString::operator>(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))>0);} - -PRBool nsString::operator<=(const nsString& S) const {return PRBool(Compare(S)<=0);} -//PRBool nsString::operator<=(const nsStr& S) const {return PRBool(Compare(S)<=0);} -//PRBool nsString::operator<=(const char* s) const {return PRBool(Compare(s)<=0);} -PRBool nsString::operator<=(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))<=0);} - -PRBool nsString::operator>=(const nsString& S) const {return PRBool(Compare(S)>=0);} -//PRBool nsString::operator>=(const nsStr& S) const {return PRBool(Compare(S)>=0);} -//PRBool nsString::operator>=(const char* s) const {return PRBool(Compare(s)>=0);} -PRBool nsString::operator>=(const PRUnichar* s) const {return PRBool(Compare(nsAutoString(s))>=0);} -#endif // !defined(NEW_STRING_APIS) PRBool nsString::EqualsIgnoreCase(const nsString& aString) const { return EqualsWithConversion(aString,PR_TRUE); @@ -1881,12 +1444,6 @@ PRBool nsString::EqualsIgnoreCase(const char* aString,PRInt32 aLength) const { return EqualsWithConversion(aString,PR_TRUE,aLength); } -#ifndef NEW_STRING_APIS -PRBool nsString::EqualsIgnoreCase(const PRUnichar* s1, const PRUnichar* s2) const { - return Equals(s1,s2,PR_TRUE); -} -#endif - /** * Compare this to given string; note that we compare full strings here. * @@ -1963,40 +1520,6 @@ PRBool nsString::EqualsIgnoreCase(/*FIX: const */nsIAtom *aAtom) const { return EqualsAtom(aAtom,PR_TRUE); } -#ifndef NEW_STRING_APIS -/** - * Compare this to given string; note that we compare full strings here. - * - * @update gess 01/04/99 - * @param aString is the other nsString to be compared to - * @param aCount tells us how many chars to test; -1 implies full length - * @return TRUE if equal - */ -PRBool nsString::Equals(const nsStr& aString,PRBool aIgnoreCase,PRInt32 aCount) const { - PRInt32 theAnswer=nsStr::StrCompare(*this,aString,aCount,aIgnoreCase); - PRBool result=PRBool(0==theAnswer); - return result; -} - -/** - * Compare given strings - * @update gess 7/27/98 - * @param s1 -- first unichar string to be compared - * @param s2 -- second unichar string to be compared - * @return TRUE if equal - */ -PRBool nsString::Equals(const PRUnichar* s1, const PRUnichar* s2,PRBool aIgnoreCase) const { - NS_ASSERTION(0!=s1,kNullPointerError); - NS_ASSERTION(0!=s2,kNullPointerError); - PRBool result=PR_FALSE; - if((s1) && (s2)){ - PRInt32 cmp=(aIgnoreCase) ? nsCRT::strcasecmp(s1,s2) : nsCRT::strcmp(s1,s2); - result=PRBool(0==cmp); - } - - return result; -} -#endif /** * Determine if given char in valid alpha range @@ -2321,21 +1844,6 @@ NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( char aChar ) AppendWithConversion(aChar); } -#if 0 -#ifdef NEW_STRING_APIS -NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( const nsAReadableCString& ) - { - // ... - } -#else -NS_ConvertASCIItoUCS2::NS_ConvertASCIItoUCS2( const nsCString& ) - { - // ... - } -#endif -#endif - - void NS_ConvertUTF8toUCS2::Init( const char* aCString, PRUint32 aLength ) { diff --git a/mozilla/xpcom/string/obsolete/nsString2.h b/mozilla/xpcom/string/obsolete/nsString2.h index 754598dc182..3cb8102a06c 100644 --- a/mozilla/xpcom/string/obsolete/nsString2.h +++ b/mozilla/xpcom/string/obsolete/nsString2.h @@ -17,10 +17,8 @@ * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * - * Original Author: - * Rick Gessner - * * Contributor(s): + * Rick Gessner (original author) * Scott Collins */ @@ -39,16 +37,6 @@ 4. Subsumable strings ***********************************************************************/ -#ifndef NEW_STRING_APIS - #define NEW_STRING_APIS 1 -#endif //NEW_STRING_APIS - - // Need this to enable comparison profiling for a while -#ifdef OLD_STRING_APIS - #undef NEW_STRING_APIS -#endif - - #ifndef _nsString_ #define _nsString_ @@ -60,9 +48,7 @@ #include "nsStr.h" #include "nsCRT.h" -#ifdef NEW_STRING_APIS #include "nsAWritableString.h" -#endif #ifdef STANDALONE_MI_STRING_TESTS class nsAReadableString { public: virtual ~nsAReadableString() { } }; @@ -78,17 +64,13 @@ class nsISizeOfHandler; class NS_COM nsSubsumeStr; class NS_COM nsString : -#if defined(NEW_STRING_APIS) || defined(STANDALONE_MI_STRING_TESTS) public nsAWritableString, -#endif public nsStr { -#ifdef NEW_STRING_APIS protected: virtual const void* Implementation() const { return "nsString"; } virtual const PRUnichar* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual PRUnichar* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); -#endif public: @@ -103,30 +85,10 @@ public: */ nsString(const nsString& aString); -#ifdef NEW_STRING_APIS explicit nsString(const nsAReadableString&); - nsString(const PRUnichar*); + explicit nsString(const PRUnichar*); nsString(const PRUnichar*, PRInt32); -#else - /** - * This constructor accepts a unichar string - * @param aCString is a ptr to a 2-byte cstr - */ - nsString(const PRUnichar* aString,PRInt32 aCount=-1); - - /** - * This constructor accepts an isolatin string - * @param aCString is a ptr to a 1-byte cstr - */ -//nsString(const char* aCString,PRInt32 aCount=-1); - - /** - * This is a copy constructor that accepts an nsStr - * @param reference to another nsString - */ -//nsString(const nsStr&); -#endif /** @@ -134,9 +96,9 @@ public: * @param reference to subsumestr */ #if defined(AIX) || defined(XP_OS2_VACPP) - nsString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ require a const here + explicit nsString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ require a const here #else - nsString(nsSubsumeStr& aSubsumeStr); + explicit nsString(nsSubsumeStr& aSubsumeStr); #endif /** @@ -198,17 +160,6 @@ public: return result; } -#ifndef NEW_STRING_APIS - /** - * Determine whether or not this string has a length of 0 - * - * @return TRUE if empty. - */ - PRBool IsEmpty(void) const { - return PRBool(0==mLength); - } -#endif - /********************************************************************** Getters/Setters... *********************************************************************/ @@ -219,63 +170,12 @@ public: const char* GetBuffer(void) const; const PRUnichar* GetUnicode(void) const; - -#ifndef NEW_STRING_APIS - /** - * Get nth character. - */ - PRUnichar operator[](PRUint32 anIndex) const; - PRUnichar CharAt(PRUint32 anIndex) const; - PRUnichar First(void) const; - PRUnichar Last(void) const; -#endif // !defined(NEW_STRING_APIS) /** * Set nth character. */ PRBool SetCharAt(PRUnichar aChar,PRUint32 anIndex); -#ifndef NEW_STRING_APIS - /********************************************************************** - String concatenation methods... - *********************************************************************/ - - /** - * Create a new string by appending given string to this - * @param aString -- 2nd string to be appended - * @return new subsumable string - */ - nsSubsumeStr operator+(const nsStr& aString); - nsSubsumeStr operator+(const nsString& aString); - - /** - * create a new string by adding this to the given cstring - * @param aCString is a ptr to cstring to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(const char* aCString); - - /** - * create a new string by adding this to the given prunichar*. - * @param aString is a ptr to UC-string to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(const PRUnichar* aString); - - /** - * create a new string by adding this to the given char. - * @param aChar is a char to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(char aChar); - - /** - * create a new string by adding this to the given char. - * @param aChar is a unichar to be added to this - * @return newly created string - */ - nsSubsumeStr operator+(PRUnichar aChar); -#endif /********************************************************************** Lexomorphic transforms... @@ -449,47 +349,14 @@ public: */ nsString& operator=( const nsString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS nsString& operator=( const nsAReadableString& aReadable ) { Assign(aReadable); return *this; } nsString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsString& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsString& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } -#endif void AssignWithConversion(char); -#ifdef NEW_STRING_APIS void AssignWithConversion(const char*); void AssignWithConversion(const char*, PRInt32); -#else - void AssignWithConversion(const char*, PRInt32=-1); - - nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1); - nsString& Assign(PRUnichar aChar); - - nsString& Assign(const nsStr& aString,PRInt32 aCount=-1); -//nsString& Assign(const char* aString,PRInt32 aCount=-1) { AssignWithConversion(aString, aCount); return *this; } -//nsString& Assign(char aChar) { AssignWithConversion(aChar); return *this; } - - /** - * here come a bunch of assignment operators... - * @param aString: string to be added to this - * @return this - */ - nsString& operator=(PRUnichar aChar) {Assign(aChar); return *this;} -//nsString& operator=(char aChar) {AssignWithConversion(aChar); return *this;} -//nsString& operator=(const char* aCString) {AssignWithConversion(aCString); return *this;} - -//nsString& operator=(const nsStr& aString) {return Assign(aString);} - nsString& operator=(const PRUnichar* aString) {return Assign(aString);} - - // Yes, I know this makes assignment from a |nsSubsumeString| not do the special thing - // |nsSubsumeString| needs to go away - #if defined(AIX) || defined(XP_OS2_VACPP) - nsString& operator=(const nsSubsumeStr& aSubsumeString); // AIX and VAC++ requires a const here - #else - nsString& operator=(nsSubsumeStr& aSubsumeString); - #endif -#endif /* @@ -507,42 +374,6 @@ public: virtual void do_AppendFromElement( PRUnichar ); -#ifndef NEW_STRING_APIS - /* - * Appends n characters from given string to this, - * - * @param aString is the source to be appended to this - * @param aCount -- number of chars to copy; -1 tells us to compute the strlen for you - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * @return number of chars copied - */ -//nsString& Append(const nsStr& aString,PRInt32 aCount); -//nsString& Append(const nsStr& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& Append(const nsString& aString,PRInt32 aCount); - nsString& Append(const nsString& aString) {return Append(aString,(PRInt32)aString.mLength);} - - nsString& Append(const PRUnichar* aString,PRInt32 aCount=-1); - nsString& Append(PRUnichar aChar); - -//nsString& Append(const char* aString,PRInt32 aCount=-1) { AppendWithConversion(aString,aCount); return *this; } -//nsString& Append(char aChar) { AppendWithConversion(aChar); return *this; } -//nsString& Append(PRInt32 aInteger,PRInt32 aRadix=10) { AppendInt(aInteger,aRadix); return *this; } -//nsString& Append(float aFloat) { AppendFloat(aFloat); return *this; } - - /** - * Here's a bunch of methods that append varying types... - * @param various... - * @return this - */ -//nsString& operator+=(const char* aCString) {return Append(aCString);} -//nsString& operator+=(const char aChar) {return Append((PRUnichar) (unsigned char)aChar);} - nsString& operator+=(const PRUnichar aChar) {return Append(aChar);} -//nsString& operator+=(const int anInt) {return Append(anInt,10);} - -//nsString& operator+=(const nsStr& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& operator+=(const nsString& aString) {return Append(aString,(PRInt32)aString.mLength);} - nsString& operator+=(const PRUnichar* aUCString) {return Append(aUCString);} -#endif /* * Copies n characters from this string to given string, @@ -581,55 +412,6 @@ public: //void InsertWithConversion(char); void InsertWithConversion(const char*, PRUint32, PRInt32=-1); -#ifndef NEW_STRING_APIS - /* - * This method inserts n chars from given string into this - * string at str[anOffset]. - * - * @param aCopy -- String to be inserted into this - * @param anOffset -- insertion position within this str - * @param aCount -- number of chars to be copied from aCopy - * NOTE: IFF you pass -1 as aCount, then your buffer must be null terminated. - * - * @return number of chars inserted into this. - */ - void Insert(const nsString& aCopy,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a given string into this string at - * a specified offset. - * - * @param aString* to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//nsString& Insert(const char* aChar,PRUint32 anOffset,PRInt32 aCount=-1) {InsertWithConversion(aChar, anOffset, aCount); return *this;} - void Insert(const PRUnichar* aChar,PRUint32 anOffset,PRInt32 aCount=-1); - - /** - * Insert a single char into this string at - * a specified offset. - * - * @param character to be inserted into this string - * @param anOffset is insert pos in str - * @return the number of chars inserted into this string - */ -//nsString& Insert(char aChar,PRUint32 anOffset) {InsertWithConversion(aChar,anOffset); return *this;} - void Insert(PRUnichar aChar,PRUint32 anOffset); -#endif - - -#ifndef NEW_STRING_APIS - /* - * This method is used to cut characters in this string - * starting at anOffset, continuing for aCount chars. - * - * @param anOffset -- start pos for cut operation - * @param aCount -- number of chars to be cut - * @return *this - */ - void Cut(PRUint32 anOffset,PRInt32 aCount); -#endif /********************************************************************** @@ -739,110 +521,6 @@ public: PRBool EqualsIgnoreCase(const char* aString,PRInt32 aCount=-1) const; PRBool EqualsIgnoreCase(/*FIX: const */nsIAtom *aAtom) const; -#ifndef NEW_STRING_APIS -//virtual PRInt32 Compare(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - -//virtual PRInt32 Compare(const nsString& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - -//virtual PRInt32 Compare(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return CompareWithConversion(aString,aIgnoreCase,aCount); -//} - - virtual PRInt32 Compare(const nsStr &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - - /** - * Compare this to given string; note that we compare full strings here. - * The optional length argument just lets us know how long the given string is. - * If you provide a length, it is compared to length of this string as an - * optimization. - * - * @param aString -- the string to compare to this - * @param aCount -- number of chars to be compared. - * @return TRUE if equal - */ - PRBool Equals(const nsString &aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(const char* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { -// return EqualsWithConversion(aString,aIgnoreCase,aCount); -//} - - PRBool Equals(const PRUnichar* aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const { - return EqualsWithConversion(aString,aIgnoreCase,aCount); - } - -//PRBool Equals(/*FIX: const */nsIAtom* anAtom,PRBool aIgnoreCase) const { return EqualsAtom(anAtom, aIgnoreCase); } - PRBool Equals(const PRUnichar* s1, const PRUnichar* s2,PRBool aIgnoreCase=PR_FALSE) const; - PRBool Equals(const nsStr& aString,PRBool aIgnoreCase=PR_FALSE,PRInt32 aCount=-1) const; - - PRBool EqualsIgnoreCase(const PRUnichar* s1, const PRUnichar* s2) const; - - /** - * These methods compare a given string type to this one - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator==(const nsString &aString) const; -//PRBool operator==(const nsStr &aString) const; -//PRBool operator==(const char *aString) const; - PRBool operator==(const PRUnichar* aString) const; - - /** - * These methods perform a !compare of a given string type to this - * @param aString is the string to be compared to this - * @return TRUE - */ - PRBool operator!=(const nsString &aString) const; -//PRBool operator!=(const nsStr &aString) const; -//PRBool operator!=(const char* aString) const; - PRBool operator!=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is < than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<(const nsString &aString) const; -//PRBool operator<(const nsStr &aString) const; -//PRBool operator<(const char* aString) const; - PRBool operator<(const PRUnichar* aString) const; - - /** - * These methods test if a given string is > than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>(const nsString &aString) const; -//PRBool operator>(const nsStr &S) const; -//PRBool operator>(const char* aString) const; - PRBool operator>(const PRUnichar* aString) const; - - /** - * These methods test if a given string is <= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator<=(const nsString &aString) const; -//PRBool operator<=(const nsStr &S) const; -//PRBool operator<=(const char* aString) const; - PRBool operator<=(const PRUnichar* aString) const; - - /** - * These methods test if a given string is >= than this - * @param aString is the string to be compared to this - * @return TRUE or FALSE - */ - PRBool operator>=(const nsString &aString) const; -//PRBool operator>=(const nsStr &S) const; -//PRBool operator>=(const char* aString) const; - PRBool operator>=(const PRUnichar* aString) const; -#endif // !defined(NEW_STRING_APIS) /** * Determine if given buffer is plain ascii @@ -884,9 +562,7 @@ public: private: // NOT TO BE IMPLEMENTED // these signatures help clients not accidentally call the wrong thing helped by C++ automatic integral promotion -#ifdef NEW_STRING_APIS void operator=( char ); -#endif void AssignWithConversion( PRUnichar ); void AssignWithConversion( const PRUnichar*, PRInt32=-1 ); void AppendWithConversion( PRUnichar ); @@ -894,19 +570,7 @@ private: void InsertWithConversion( const PRUnichar*, PRUint32, PRInt32=-1 ); }; -#ifdef NEW_STRING_APIS NS_DEF_STRING_COMPARISON_OPERATORS(nsString, PRUnichar) -// NS_DEF_DERIVED_STRING_OPERATOR_PLUS(nsString, PRUnichar) -#endif - -#if 0 // #ifdef NEW_STRING_APIS -inline -nsPromiseConcatenation -operator+( const nsPromiseConcatenation& lhs, const nsString& rhs ) - { - return nsPromiseConcatenation(lhs, rhs); - } -#endif extern NS_COM int fputs(const nsString& aString, FILE* out); //ostream& operator<<(ostream& aStream,const nsString& aString); @@ -924,27 +588,21 @@ public: virtual ~nsAutoString(); nsAutoString(); nsAutoString(const nsAutoString& aString); - nsAutoString(const nsAReadableString& aString); - nsAutoString(const nsString& aString); - nsAutoString(const PRUnichar* aString); + explicit nsAutoString(const nsAReadableString& aString); + explicit nsAutoString(const nsString& aString); + explicit nsAutoString(const PRUnichar* aString); nsAutoString(const PRUnichar* aString,PRInt32 aLength); - nsAutoString(PRUnichar aChar); - nsAutoString(const CBufDescriptor& aBuffer); - -#ifndef NEW_STRING_APIS -// nsAutoString(const char* aCString,PRInt32 aLength=-1); -// nsAutoString(const nsStr& aString); -#endif + explicit nsAutoString(PRUnichar aChar); + explicit nsAutoString(const CBufDescriptor& aBuffer); #if defined(AIX) || defined(XP_OS2_VACPP) - nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ requires a const + explicit nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX and VAC++ requires a const #else - nsAutoString(nsSubsumeStr& aSubsumeStr); + explicit nsAutoString(nsSubsumeStr& aSubsumeStr); #endif // AIX || XP_OS2_VACPP nsAutoString& operator=( const nsAutoString& aString ) { Assign(aString); return *this; } -#ifdef NEW_STRING_APIS private: void operator=( char ); // NOT TO BE IMPLEMENTED public: @@ -952,13 +610,6 @@ public: nsAutoString& operator=( const nsPromiseReadable& aReadable ) { Assign(aReadable); return *this; } nsAutoString& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsAutoString& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } -#else - nsAutoString& operator=(const nsStr& aString) {nsString::Assign(aString); return *this;} -// nsAutoString& operator=(const char* aCString) {nsString::Assign(aCString); return *this;} -// nsAutoString& operator=(char aChar) {nsString::Assign(aChar); return *this;} - nsAutoString& operator=(const PRUnichar* aBuffer) {nsString::Assign(aBuffer); return *this;} - nsAutoString& operator=(PRUnichar aChar) {nsString::Assign(aChar); return *this;} -#endif /** * Retrieve the size of this string @@ -969,10 +620,6 @@ public: char mBuffer[kDefaultStringSize<& aReadable ) { Assign(aReadable); return *this; } nsSubsumeStr& operator=( const PRUnichar* aPtr ) { Assign(aPtr); return *this; } nsSubsumeStr& operator=( PRUnichar aChar ) { Assign(aChar); return *this; } private: void operator=( char ); // NOT TO BE IMPLEMENTED -#endif };