finer grain control of which current string assignments are still available after |NEW_STRING_APIS|. Added |AssignWithConversion| signatures. Made appropriate current |Assign|s be synonyms.

git-svn-id: svn://10.0.0.236/trunk@64404 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
scc%netscape.com 2000-03-29 00:06:31 +00:00
parent 3a62701ffd
commit afd60f21c4
12 changed files with 282 additions and 213 deletions

View File

@ -86,7 +86,7 @@ nsCString::nsCString(const char* aCString,PRInt32 aLength) {
*/
nsCString::nsCString(const PRUnichar* aString,PRInt32 aLength) {
nsStr::Initialize(*this,eOneByte);
Assign(aString,aLength);
AssignWithConversion(aString,aLength);
}
/**
@ -826,7 +826,7 @@ 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
@ -845,6 +845,7 @@ nsCString& nsCString::Assign(const nsStr& aString,PRInt32 aCount) {
}
return *this;
}
#endif
/**
* assign given char* to this string
@ -872,7 +873,7 @@ nsCString& nsCString::Assign(const char* aCString,PRInt32 aCount) {
*
* @return this
*/
nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
void nsCString::AssignWithConversion(const PRUnichar* aString,PRInt32 aCount) {
nsStr::Truncate(*this,0);
if(aString && aCount){
@ -898,7 +899,6 @@ nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
if(0<aCount)
nsStr::Append(*this,temp,0,aCount);
}
return *this;
}
@ -908,9 +908,9 @@ nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
* @param aChar: char to be assignd to this
* @return this
*/
nsCString& nsCString::Assign(PRUnichar aChar) {
void nsCString::AssignWithConversion(PRUnichar aChar) {
nsStr::Truncate(*this,0);
return Append(aChar);
Append(aChar);
}
/**
@ -924,7 +924,6 @@ nsCString& nsCString::Assign(char aChar) {
return Append(aChar);
}
#ifndef NEW_STRING_APIS
/**
* WARNING! THIS IS A VERY SPECIAL METHOD.
* This method "steals" the contents of aSource and hands it to aDest.
@ -943,7 +942,6 @@ nsCString& nsCString::operator=(nsSubsumeCStr& aSubsumeString) {
#endif // AIX
return *this;
}
#endif
/**
* append given string to this string
@ -1929,3 +1927,4 @@ nsSubsumeCStr::nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLengt
}

View File

@ -47,6 +47,9 @@
#ifdef NEW_STRING_APIS
#include "nsAWritableString.h"
#else
#define NS_LITERAL_STRING(s) (s)
#define NS_LITERAL_CSTRING(s) (s)
#endif
@ -67,14 +70,9 @@ public:
nsCString( const nsAReadableCString& );
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableCString::Assign;
using nsAWritableCString::Append;
using nsAWritableCString::Insert;
#else
virtual void Assign( const nsAReadableCString& aReadable ) {
nsAWritableCString::Assign(aReadable);
}
virtual void Append( const nsAReadableCString& aReadable ) {
nsAWritableCString::Append(aReadable);
}
@ -123,7 +121,7 @@ public:
* This constructor takes a subsumestr
* @param reference to subsumestr
*/
nsCString(nsSubsumeCStr& aSubsumeStr);
nsCString(nsSubsumeCStr& aSubsumeStr);
/**
* Destructor
@ -393,13 +391,6 @@ public:
String manipulation methods...
*********************************************************************/
/**
* Functionally equivalent to assign or operator=
*
*/
nsCString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
nsCString& SetString(const nsStr& aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
/**
* assign given string to this string
* @param aStr: buffer to be assigned to this
@ -408,12 +399,36 @@ public:
*
* @return this
*/
nsCString& Assign(const nsStr& aString,PRInt32 aCount=-1);
#ifdef NEW_STRING_APIS
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableCString::Assign;
#else
virtual void Assign( const nsAReadableCString& aReadable ) {
nsAWritableCString::Assign(aReadable);
}
#endif
#endif
nsCString& Assign(const char* aString,PRInt32 aCount=-1);
nsCString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsCString& Assign(PRUnichar aChar);
nsCString& Assign(char aChar);
void AssignWithConversion(const PRUnichar*,PRInt32=-1);
void AssignWithConversion(PRUnichar);
#ifndef NEW_STRING_APIS
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; }
#endif
/**
* Functionally equivalent to assign or operator=
*
*/
nsCString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
#ifndef NEW_STRING_APIS
nsCString& SetString(const nsStr& aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
#endif
/**
* here come a bunch of assignment operators...
* @param aString: string to be added to this
@ -426,20 +441,20 @@ public:
nsCString& operator=( const nsAReadableCString& aReadable ) { nsAWritableCString::operator=(aReadable); return *this; }
#endif
#endif
nsCString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsCString& operator=(char aChar) {return Assign(aChar);}
nsCString& operator=(const PRUnichar* aString) {return Assign(aString);}
nsCString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsCString& operator=(char aChar) {AssignWithConversion(aChar); return *this;}
nsCString& operator=(const PRUnichar* aString) {AssignWithConversion(aString); return *this;}
#ifndef NEW_STRING_APIS
nsCString& operator=(const nsCString& aString) {return Assign(aString);}
nsCString& operator=(const nsStr& aString) {return Assign(aString);}
nsCString& operator=(const char* aCString) {return Assign(aCString);}
nsCString& operator=(const nsCString& aString) {return Assign(aString);}
nsCString& operator=(const nsStr& aString) {return Assign(aString);}
nsCString& operator=(const char* aCString) {return Assign(aCString);}
#endif
#ifdef AIX
nsCString& operator=(const nsSubsumeCStr& aSubsumeString); // AIX requires a const here
#else
nsCString& operator=(nsSubsumeCStr& aSubsumeString);
#endif
#endif
/**
* Here's a bunch of methods that append varying types...
@ -778,6 +793,7 @@ public:
#else
nsCAutoString(nsSubsumeCStr& aSubsumeStr);
#endif // AIX
nsCAutoString(PRUnichar aChar);
virtual ~nsCAutoString();

View File

@ -39,7 +39,6 @@ static const char* kNullPointerError = "Error: unexpected null ptr";
static const char* kWhitespace="\b\t\r\n ";
static void Subsume(nsStr& aDest,nsStr& aSource){
if(aSource.mStr && aSource.mLength) {
if(aSource.mOwnsBuffer){
@ -75,7 +74,7 @@ nsString::nsString() {
*/
nsString::nsString(const char* aCString,PRInt32 aCount){
nsStr::Initialize(*this,eTwoByte);
Assign(aCString,aCount);
AssignWithConversion(aCString,aCount);
}
/**
@ -834,7 +833,7 @@ char* nsString::ToCString(char* aBuf, PRUint32 aBufLength,PRUint32 anOffset) con
CBufDescriptor theDescr(aBuf,PR_TRUE,aBufLength,0);
nsCAutoString temp(theDescr);
temp.Assign(*this,aBufLength-1);
nsStr::Assign(temp, *this, anOffset, aBufLength-1);
temp.mStr=0;
}
return aBuf;
@ -1008,12 +1007,11 @@ nsString& nsString::Assign(const nsStr& aString,PRInt32 aCount) {
*
* @return this
*/
nsString& nsString::Assign(const char* aCString,PRInt32 aCount) {
void nsString::AssignWithConversion(const char* aCString,PRInt32 aCount) {
nsStr::Truncate(*this,0);
if(aCString){
Append(aCString,aCount);
}
return *this;
}
/**
@ -1039,9 +1037,9 @@ nsString& nsString::Assign(const PRUnichar* aString,PRInt32 aCount) {
* @param aChar: char to be assignd to this
* @return this
*/
nsString& nsString::Assign(char aChar) {
void nsString::AssignWithConversion(char aChar) {
nsStr::Truncate(*this,0);
return Append(aChar);
Append(aChar);
}
/**
@ -1055,7 +1053,6 @@ nsString& nsString::Assign(PRUnichar aChar) {
return Append(aChar);
}
#ifndef NEW_STRING_APIS
/**
* WARNING! THIS IS A VERY SPECIAL METHOD.
* This method "steals" the contents of aSource and hands it to aDest.
@ -1074,7 +1071,6 @@ nsString& nsString::operator=(const nsSubsumeStr& aSubsumeString) {
#endif // AIX
return *this;
}
#endif
/**
* append given string to this string;
@ -2227,8 +2223,8 @@ void nsString::DebugDump(void) const {
const char* theBuffer=mStr;
nsCAutoString temp;
if(eTwoByte==mCharSize) {
temp.Assign(*this);
if(eTwoByte==mCharSize) {
nsStr::Assign(temp, *this, 0, mLength);
theBuffer=temp.GetBuffer();
}
@ -2377,3 +2373,4 @@ int nsSubsumeStr::Subsume(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLen
mOwnsBuffer=assumeOwnership;
return 0;
}

View File

@ -57,8 +57,8 @@ class nsISizeOfHandler;
#define nsString2 nsString
#define nsAutoString2 nsAutoString
class NS_COM nsSubsumeStr;
class NS_COM nsString :
#ifdef NEW_STRING_APIS
public nsAWritableString,
@ -74,14 +74,9 @@ public:
nsString( const nsAReadableString& );
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableString::Assign;
using nsAWritableString::Append;
using nsAWritableString::Insert;
#else
virtual void Assign( const nsAReadableString& aReadable ) {
nsAWritableString::Assign(aReadable);
}
virtual void Append( const nsAReadableString& aReadable ) {
nsAWritableString::Append(aReadable);
}
@ -437,20 +432,6 @@ public:
String manipulation methods...
*********************************************************************/
/**
* Functionally equivalent to assign or operator=
*
*/
#ifdef NEW_STRING_APIS
nsString& SetString(const char* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
#else
nsString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
#endif
/**
* assign given string to this string
* @param aStr: buffer to be assigned to this
@ -459,13 +440,42 @@ public:
* @return this
*/
#ifdef NEW_STRING_APIS
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableString::Assign;
#else
virtual void Assign( const nsAReadableString& aReadable ) {
nsAWritableString::Assign(aReadable);
}
#endif
#endif
nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsString& Assign(PRUnichar aChar);
void AssignWithConversion(const char*, PRInt32=-1);
void AssignWithConversion(char);
#ifndef NEW_STRING_APIS
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; }
#endif
nsString& Assign(const char* aString,PRInt32 aCount=-1);
nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsString& Assign(char aChar);
nsString& Assign(PRUnichar aChar);
/**
* Functionally equivalent to assign or operator=
*
*/
nsString& SetString(const char* aString,PRInt32 aLength=-1) {AssignWithConversion(aString, aLength); return *this;}
#ifdef NEW_STRING_APIS
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
#else
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
#endif
/**
* here come a bunch of assignment operators...
@ -479,20 +489,20 @@ public:
nsString& operator=( const nsAReadableString& aReadable ) { nsAWritableString::operator=(aReadable); return *this; }
#endif
#endif
nsString& operator=(char aChar) {return Assign(aChar);}
nsString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsString& operator=(const char* aCString) {return Assign(aCString);}
nsString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsString& operator=(char aChar) {AssignWithConversion(aChar); return *this;}
nsString& operator=(const char* aCString) {AssignWithConversion(aCString); return *this;}
#ifndef NEW_STRING_APIS
nsString& operator=(const nsString& aString) {return Assign(aString);}
nsString& operator=(const nsStr& aString) {return Assign(aString);}
nsString& operator=(const PRUnichar* aString) {return Assign(aString);}
#endif
#ifdef AIX
nsString& operator=(const nsSubsumeStr& aSubsumeString); // AIX requires a const here
#else
nsString& operator=(nsSubsumeStr& aSubsumeString);
#endif
#endif
/**
* Here's a bunch of methods that append varying types...
@ -873,11 +883,13 @@ public:
nsAutoString(const CBufDescriptor& aBuffer);
nsAutoString(const nsStr& aString);
nsAutoString(const nsAutoString& aString);
#ifdef AIX
nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX requires a const
#else
nsAutoString(nsSubsumeStr& aSubsumeStr);
#endif // AIX
nsAutoString(PRUnichar aChar);
virtual ~nsAutoString();
@ -924,7 +936,6 @@ public:
};
#endif

View File

@ -86,7 +86,7 @@ nsCString::nsCString(const char* aCString,PRInt32 aLength) {
*/
nsCString::nsCString(const PRUnichar* aString,PRInt32 aLength) {
nsStr::Initialize(*this,eOneByte);
Assign(aString,aLength);
AssignWithConversion(aString,aLength);
}
/**
@ -826,7 +826,7 @@ 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
@ -845,6 +845,7 @@ nsCString& nsCString::Assign(const nsStr& aString,PRInt32 aCount) {
}
return *this;
}
#endif
/**
* assign given char* to this string
@ -872,7 +873,7 @@ nsCString& nsCString::Assign(const char* aCString,PRInt32 aCount) {
*
* @return this
*/
nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
void nsCString::AssignWithConversion(const PRUnichar* aString,PRInt32 aCount) {
nsStr::Truncate(*this,0);
if(aString && aCount){
@ -898,7 +899,6 @@ nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
if(0<aCount)
nsStr::Append(*this,temp,0,aCount);
}
return *this;
}
@ -908,9 +908,9 @@ nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
* @param aChar: char to be assignd to this
* @return this
*/
nsCString& nsCString::Assign(PRUnichar aChar) {
void nsCString::AssignWithConversion(PRUnichar aChar) {
nsStr::Truncate(*this,0);
return Append(aChar);
Append(aChar);
}
/**
@ -924,7 +924,6 @@ nsCString& nsCString::Assign(char aChar) {
return Append(aChar);
}
#ifndef NEW_STRING_APIS
/**
* WARNING! THIS IS A VERY SPECIAL METHOD.
* This method "steals" the contents of aSource and hands it to aDest.
@ -943,7 +942,6 @@ nsCString& nsCString::operator=(nsSubsumeCStr& aSubsumeString) {
#endif // AIX
return *this;
}
#endif
/**
* append given string to this string
@ -1929,3 +1927,4 @@ nsSubsumeCStr::nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLengt
}

View File

@ -47,6 +47,9 @@
#ifdef NEW_STRING_APIS
#include "nsAWritableString.h"
#else
#define NS_LITERAL_STRING(s) (s)
#define NS_LITERAL_CSTRING(s) (s)
#endif
@ -67,14 +70,9 @@ public:
nsCString( const nsAReadableCString& );
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableCString::Assign;
using nsAWritableCString::Append;
using nsAWritableCString::Insert;
#else
virtual void Assign( const nsAReadableCString& aReadable ) {
nsAWritableCString::Assign(aReadable);
}
virtual void Append( const nsAReadableCString& aReadable ) {
nsAWritableCString::Append(aReadable);
}
@ -123,7 +121,7 @@ public:
* This constructor takes a subsumestr
* @param reference to subsumestr
*/
nsCString(nsSubsumeCStr& aSubsumeStr);
nsCString(nsSubsumeCStr& aSubsumeStr);
/**
* Destructor
@ -393,13 +391,6 @@ public:
String manipulation methods...
*********************************************************************/
/**
* Functionally equivalent to assign or operator=
*
*/
nsCString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
nsCString& SetString(const nsStr& aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
/**
* assign given string to this string
* @param aStr: buffer to be assigned to this
@ -408,12 +399,36 @@ public:
*
* @return this
*/
nsCString& Assign(const nsStr& aString,PRInt32 aCount=-1);
#ifdef NEW_STRING_APIS
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableCString::Assign;
#else
virtual void Assign( const nsAReadableCString& aReadable ) {
nsAWritableCString::Assign(aReadable);
}
#endif
#endif
nsCString& Assign(const char* aString,PRInt32 aCount=-1);
nsCString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsCString& Assign(PRUnichar aChar);
nsCString& Assign(char aChar);
void AssignWithConversion(const PRUnichar*,PRInt32=-1);
void AssignWithConversion(PRUnichar);
#ifndef NEW_STRING_APIS
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; }
#endif
/**
* Functionally equivalent to assign or operator=
*
*/
nsCString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
#ifndef NEW_STRING_APIS
nsCString& SetString(const nsStr& aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
#endif
/**
* here come a bunch of assignment operators...
* @param aString: string to be added to this
@ -426,20 +441,20 @@ public:
nsCString& operator=( const nsAReadableCString& aReadable ) { nsAWritableCString::operator=(aReadable); return *this; }
#endif
#endif
nsCString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsCString& operator=(char aChar) {return Assign(aChar);}
nsCString& operator=(const PRUnichar* aString) {return Assign(aString);}
nsCString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsCString& operator=(char aChar) {AssignWithConversion(aChar); return *this;}
nsCString& operator=(const PRUnichar* aString) {AssignWithConversion(aString); return *this;}
#ifndef NEW_STRING_APIS
nsCString& operator=(const nsCString& aString) {return Assign(aString);}
nsCString& operator=(const nsStr& aString) {return Assign(aString);}
nsCString& operator=(const char* aCString) {return Assign(aCString);}
nsCString& operator=(const nsCString& aString) {return Assign(aString);}
nsCString& operator=(const nsStr& aString) {return Assign(aString);}
nsCString& operator=(const char* aCString) {return Assign(aCString);}
#endif
#ifdef AIX
nsCString& operator=(const nsSubsumeCStr& aSubsumeString); // AIX requires a const here
#else
nsCString& operator=(nsSubsumeCStr& aSubsumeString);
#endif
#endif
/**
* Here's a bunch of methods that append varying types...
@ -778,6 +793,7 @@ public:
#else
nsCAutoString(nsSubsumeCStr& aSubsumeStr);
#endif // AIX
nsCAutoString(PRUnichar aChar);
virtual ~nsCAutoString();

View File

@ -39,7 +39,6 @@ static const char* kNullPointerError = "Error: unexpected null ptr";
static const char* kWhitespace="\b\t\r\n ";
static void Subsume(nsStr& aDest,nsStr& aSource){
if(aSource.mStr && aSource.mLength) {
if(aSource.mOwnsBuffer){
@ -75,7 +74,7 @@ nsString::nsString() {
*/
nsString::nsString(const char* aCString,PRInt32 aCount){
nsStr::Initialize(*this,eTwoByte);
Assign(aCString,aCount);
AssignWithConversion(aCString,aCount);
}
/**
@ -834,7 +833,7 @@ char* nsString::ToCString(char* aBuf, PRUint32 aBufLength,PRUint32 anOffset) con
CBufDescriptor theDescr(aBuf,PR_TRUE,aBufLength,0);
nsCAutoString temp(theDescr);
temp.Assign(*this,aBufLength-1);
nsStr::Assign(temp, *this, anOffset, aBufLength-1);
temp.mStr=0;
}
return aBuf;
@ -1008,12 +1007,11 @@ nsString& nsString::Assign(const nsStr& aString,PRInt32 aCount) {
*
* @return this
*/
nsString& nsString::Assign(const char* aCString,PRInt32 aCount) {
void nsString::AssignWithConversion(const char* aCString,PRInt32 aCount) {
nsStr::Truncate(*this,0);
if(aCString){
Append(aCString,aCount);
}
return *this;
}
/**
@ -1039,9 +1037,9 @@ nsString& nsString::Assign(const PRUnichar* aString,PRInt32 aCount) {
* @param aChar: char to be assignd to this
* @return this
*/
nsString& nsString::Assign(char aChar) {
void nsString::AssignWithConversion(char aChar) {
nsStr::Truncate(*this,0);
return Append(aChar);
Append(aChar);
}
/**
@ -1055,7 +1053,6 @@ nsString& nsString::Assign(PRUnichar aChar) {
return Append(aChar);
}
#ifndef NEW_STRING_APIS
/**
* WARNING! THIS IS A VERY SPECIAL METHOD.
* This method "steals" the contents of aSource and hands it to aDest.
@ -1074,7 +1071,6 @@ nsString& nsString::operator=(const nsSubsumeStr& aSubsumeString) {
#endif // AIX
return *this;
}
#endif
/**
* append given string to this string;
@ -2227,8 +2223,8 @@ void nsString::DebugDump(void) const {
const char* theBuffer=mStr;
nsCAutoString temp;
if(eTwoByte==mCharSize) {
temp.Assign(*this);
if(eTwoByte==mCharSize) {
nsStr::Assign(temp, *this, 0, mLength);
theBuffer=temp.GetBuffer();
}
@ -2377,3 +2373,4 @@ int nsSubsumeStr::Subsume(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLen
mOwnsBuffer=assumeOwnership;
return 0;
}

View File

@ -57,8 +57,8 @@ class nsISizeOfHandler;
#define nsString2 nsString
#define nsAutoString2 nsAutoString
class NS_COM nsSubsumeStr;
class NS_COM nsString :
#ifdef NEW_STRING_APIS
public nsAWritableString,
@ -74,14 +74,9 @@ public:
nsString( const nsAReadableString& );
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableString::Assign;
using nsAWritableString::Append;
using nsAWritableString::Insert;
#else
virtual void Assign( const nsAReadableString& aReadable ) {
nsAWritableString::Assign(aReadable);
}
virtual void Append( const nsAReadableString& aReadable ) {
nsAWritableString::Append(aReadable);
}
@ -437,20 +432,6 @@ public:
String manipulation methods...
*********************************************************************/
/**
* Functionally equivalent to assign or operator=
*
*/
#ifdef NEW_STRING_APIS
nsString& SetString(const char* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
#else
nsString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
#endif
/**
* assign given string to this string
* @param aStr: buffer to be assigned to this
@ -459,13 +440,42 @@ public:
* @return this
*/
#ifdef NEW_STRING_APIS
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableString::Assign;
#else
virtual void Assign( const nsAReadableString& aReadable ) {
nsAWritableString::Assign(aReadable);
}
#endif
#endif
nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsString& Assign(PRUnichar aChar);
void AssignWithConversion(const char*, PRInt32=-1);
void AssignWithConversion(char);
#ifndef NEW_STRING_APIS
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; }
#endif
nsString& Assign(const char* aString,PRInt32 aCount=-1);
nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsString& Assign(char aChar);
nsString& Assign(PRUnichar aChar);
/**
* Functionally equivalent to assign or operator=
*
*/
nsString& SetString(const char* aString,PRInt32 aLength=-1) {AssignWithConversion(aString, aLength); return *this;}
#ifdef NEW_STRING_APIS
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
#else
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
#endif
/**
* here come a bunch of assignment operators...
@ -479,20 +489,20 @@ public:
nsString& operator=( const nsAReadableString& aReadable ) { nsAWritableString::operator=(aReadable); return *this; }
#endif
#endif
nsString& operator=(char aChar) {return Assign(aChar);}
nsString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsString& operator=(const char* aCString) {return Assign(aCString);}
nsString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsString& operator=(char aChar) {AssignWithConversion(aChar); return *this;}
nsString& operator=(const char* aCString) {AssignWithConversion(aCString); return *this;}
#ifndef NEW_STRING_APIS
nsString& operator=(const nsString& aString) {return Assign(aString);}
nsString& operator=(const nsStr& aString) {return Assign(aString);}
nsString& operator=(const PRUnichar* aString) {return Assign(aString);}
#endif
#ifdef AIX
nsString& operator=(const nsSubsumeStr& aSubsumeString); // AIX requires a const here
#else
nsString& operator=(nsSubsumeStr& aSubsumeString);
#endif
#endif
/**
* Here's a bunch of methods that append varying types...
@ -873,11 +883,13 @@ public:
nsAutoString(const CBufDescriptor& aBuffer);
nsAutoString(const nsStr& aString);
nsAutoString(const nsAutoString& aString);
#ifdef AIX
nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX requires a const
#else
nsAutoString(nsSubsumeStr& aSubsumeStr);
#endif // AIX
nsAutoString(PRUnichar aChar);
virtual ~nsAutoString();
@ -924,7 +936,6 @@ public:
};
#endif

View File

@ -86,7 +86,7 @@ nsCString::nsCString(const char* aCString,PRInt32 aLength) {
*/
nsCString::nsCString(const PRUnichar* aString,PRInt32 aLength) {
nsStr::Initialize(*this,eOneByte);
Assign(aString,aLength);
AssignWithConversion(aString,aLength);
}
/**
@ -826,7 +826,7 @@ 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
@ -845,6 +845,7 @@ nsCString& nsCString::Assign(const nsStr& aString,PRInt32 aCount) {
}
return *this;
}
#endif
/**
* assign given char* to this string
@ -872,7 +873,7 @@ nsCString& nsCString::Assign(const char* aCString,PRInt32 aCount) {
*
* @return this
*/
nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
void nsCString::AssignWithConversion(const PRUnichar* aString,PRInt32 aCount) {
nsStr::Truncate(*this,0);
if(aString && aCount){
@ -898,7 +899,6 @@ nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
if(0<aCount)
nsStr::Append(*this,temp,0,aCount);
}
return *this;
}
@ -908,9 +908,9 @@ nsCString& nsCString::Assign(const PRUnichar* aString,PRInt32 aCount) {
* @param aChar: char to be assignd to this
* @return this
*/
nsCString& nsCString::Assign(PRUnichar aChar) {
void nsCString::AssignWithConversion(PRUnichar aChar) {
nsStr::Truncate(*this,0);
return Append(aChar);
Append(aChar);
}
/**
@ -924,7 +924,6 @@ nsCString& nsCString::Assign(char aChar) {
return Append(aChar);
}
#ifndef NEW_STRING_APIS
/**
* WARNING! THIS IS A VERY SPECIAL METHOD.
* This method "steals" the contents of aSource and hands it to aDest.
@ -943,7 +942,6 @@ nsCString& nsCString::operator=(nsSubsumeCStr& aSubsumeString) {
#endif // AIX
return *this;
}
#endif
/**
* append given string to this string
@ -1929,3 +1927,4 @@ nsSubsumeCStr::nsSubsumeCStr(char* aString,PRBool assumeOwnership,PRInt32 aLengt
}

View File

@ -47,6 +47,9 @@
#ifdef NEW_STRING_APIS
#include "nsAWritableString.h"
#else
#define NS_LITERAL_STRING(s) (s)
#define NS_LITERAL_CSTRING(s) (s)
#endif
@ -67,14 +70,9 @@ public:
nsCString( const nsAReadableCString& );
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableCString::Assign;
using nsAWritableCString::Append;
using nsAWritableCString::Insert;
#else
virtual void Assign( const nsAReadableCString& aReadable ) {
nsAWritableCString::Assign(aReadable);
}
virtual void Append( const nsAReadableCString& aReadable ) {
nsAWritableCString::Append(aReadable);
}
@ -123,7 +121,7 @@ public:
* This constructor takes a subsumestr
* @param reference to subsumestr
*/
nsCString(nsSubsumeCStr& aSubsumeStr);
nsCString(nsSubsumeCStr& aSubsumeStr);
/**
* Destructor
@ -393,13 +391,6 @@ public:
String manipulation methods...
*********************************************************************/
/**
* Functionally equivalent to assign or operator=
*
*/
nsCString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
nsCString& SetString(const nsStr& aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
/**
* assign given string to this string
* @param aStr: buffer to be assigned to this
@ -408,12 +399,36 @@ public:
*
* @return this
*/
nsCString& Assign(const nsStr& aString,PRInt32 aCount=-1);
#ifdef NEW_STRING_APIS
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableCString::Assign;
#else
virtual void Assign( const nsAReadableCString& aReadable ) {
nsAWritableCString::Assign(aReadable);
}
#endif
#endif
nsCString& Assign(const char* aString,PRInt32 aCount=-1);
nsCString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsCString& Assign(PRUnichar aChar);
nsCString& Assign(char aChar);
void AssignWithConversion(const PRUnichar*,PRInt32=-1);
void AssignWithConversion(PRUnichar);
#ifndef NEW_STRING_APIS
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; }
#endif
/**
* Functionally equivalent to assign or operator=
*
*/
nsCString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
#ifndef NEW_STRING_APIS
nsCString& SetString(const nsStr& aString,PRInt32 aLength=-1) {return Assign(aString,aLength);}
#endif
/**
* here come a bunch of assignment operators...
* @param aString: string to be added to this
@ -426,20 +441,20 @@ public:
nsCString& operator=( const nsAReadableCString& aReadable ) { nsAWritableCString::operator=(aReadable); return *this; }
#endif
#endif
nsCString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsCString& operator=(char aChar) {return Assign(aChar);}
nsCString& operator=(const PRUnichar* aString) {return Assign(aString);}
nsCString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsCString& operator=(char aChar) {AssignWithConversion(aChar); return *this;}
nsCString& operator=(const PRUnichar* aString) {AssignWithConversion(aString); return *this;}
#ifndef NEW_STRING_APIS
nsCString& operator=(const nsCString& aString) {return Assign(aString);}
nsCString& operator=(const nsStr& aString) {return Assign(aString);}
nsCString& operator=(const char* aCString) {return Assign(aCString);}
nsCString& operator=(const nsCString& aString) {return Assign(aString);}
nsCString& operator=(const nsStr& aString) {return Assign(aString);}
nsCString& operator=(const char* aCString) {return Assign(aCString);}
#endif
#ifdef AIX
nsCString& operator=(const nsSubsumeCStr& aSubsumeString); // AIX requires a const here
#else
nsCString& operator=(nsSubsumeCStr& aSubsumeString);
#endif
#endif
/**
* Here's a bunch of methods that append varying types...
@ -778,6 +793,7 @@ public:
#else
nsCAutoString(nsSubsumeCStr& aSubsumeStr);
#endif // AIX
nsCAutoString(PRUnichar aChar);
virtual ~nsCAutoString();

View File

@ -39,7 +39,6 @@ static const char* kNullPointerError = "Error: unexpected null ptr";
static const char* kWhitespace="\b\t\r\n ";
static void Subsume(nsStr& aDest,nsStr& aSource){
if(aSource.mStr && aSource.mLength) {
if(aSource.mOwnsBuffer){
@ -75,7 +74,7 @@ nsString::nsString() {
*/
nsString::nsString(const char* aCString,PRInt32 aCount){
nsStr::Initialize(*this,eTwoByte);
Assign(aCString,aCount);
AssignWithConversion(aCString,aCount);
}
/**
@ -834,7 +833,7 @@ char* nsString::ToCString(char* aBuf, PRUint32 aBufLength,PRUint32 anOffset) con
CBufDescriptor theDescr(aBuf,PR_TRUE,aBufLength,0);
nsCAutoString temp(theDescr);
temp.Assign(*this,aBufLength-1);
nsStr::Assign(temp, *this, anOffset, aBufLength-1);
temp.mStr=0;
}
return aBuf;
@ -1008,12 +1007,11 @@ nsString& nsString::Assign(const nsStr& aString,PRInt32 aCount) {
*
* @return this
*/
nsString& nsString::Assign(const char* aCString,PRInt32 aCount) {
void nsString::AssignWithConversion(const char* aCString,PRInt32 aCount) {
nsStr::Truncate(*this,0);
if(aCString){
Append(aCString,aCount);
}
return *this;
}
/**
@ -1039,9 +1037,9 @@ nsString& nsString::Assign(const PRUnichar* aString,PRInt32 aCount) {
* @param aChar: char to be assignd to this
* @return this
*/
nsString& nsString::Assign(char aChar) {
void nsString::AssignWithConversion(char aChar) {
nsStr::Truncate(*this,0);
return Append(aChar);
Append(aChar);
}
/**
@ -1055,7 +1053,6 @@ nsString& nsString::Assign(PRUnichar aChar) {
return Append(aChar);
}
#ifndef NEW_STRING_APIS
/**
* WARNING! THIS IS A VERY SPECIAL METHOD.
* This method "steals" the contents of aSource and hands it to aDest.
@ -1074,7 +1071,6 @@ nsString& nsString::operator=(const nsSubsumeStr& aSubsumeString) {
#endif // AIX
return *this;
}
#endif
/**
* append given string to this string;
@ -2227,8 +2223,8 @@ void nsString::DebugDump(void) const {
const char* theBuffer=mStr;
nsCAutoString temp;
if(eTwoByte==mCharSize) {
temp.Assign(*this);
if(eTwoByte==mCharSize) {
nsStr::Assign(temp, *this, 0, mLength);
theBuffer=temp.GetBuffer();
}
@ -2377,3 +2373,4 @@ int nsSubsumeStr::Subsume(PRUnichar* aString,PRBool assumeOwnership,PRInt32 aLen
mOwnsBuffer=assumeOwnership;
return 0;
}

View File

@ -57,8 +57,8 @@ class nsISizeOfHandler;
#define nsString2 nsString
#define nsAutoString2 nsAutoString
class NS_COM nsSubsumeStr;
class NS_COM nsString :
#ifdef NEW_STRING_APIS
public nsAWritableString,
@ -74,14 +74,9 @@ public:
nsString( const nsAReadableString& );
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableString::Assign;
using nsAWritableString::Append;
using nsAWritableString::Insert;
#else
virtual void Assign( const nsAReadableString& aReadable ) {
nsAWritableString::Assign(aReadable);
}
virtual void Append( const nsAReadableString& aReadable ) {
nsAWritableString::Append(aReadable);
}
@ -437,20 +432,6 @@ public:
String manipulation methods...
*********************************************************************/
/**
* Functionally equivalent to assign or operator=
*
*/
#ifdef NEW_STRING_APIS
nsString& SetString(const char* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
#else
nsString& SetString(const char* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
#endif
/**
* assign given string to this string
* @param aStr: buffer to be assigned to this
@ -459,13 +440,42 @@ public:
* @return this
*/
#ifdef NEW_STRING_APIS
#ifdef HAVE_AMBIGUITY_RESOLVING_CPP_USING
using nsAWritableString::Assign;
#else
virtual void Assign( const nsAReadableString& aReadable ) {
nsAWritableString::Assign(aReadable);
}
#endif
#endif
nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsString& Assign(PRUnichar aChar);
void AssignWithConversion(const char*, PRInt32=-1);
void AssignWithConversion(char);
#ifndef NEW_STRING_APIS
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; }
#endif
nsString& Assign(const char* aString,PRInt32 aCount=-1);
nsString& Assign(const PRUnichar* aString,PRInt32 aCount=-1);
nsString& Assign(char aChar);
nsString& Assign(PRUnichar aChar);
/**
* Functionally equivalent to assign or operator=
*
*/
nsString& SetString(const char* aString,PRInt32 aLength=-1) {AssignWithConversion(aString, aLength); return *this;}
#ifdef NEW_STRING_APIS
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {Assign(aString); return *this;}
#else
nsString& SetString(const nsString& aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
nsString& SetString(const PRUnichar* aString,PRInt32 aLength=-1) {return Assign(aString, aLength);}
#endif
/**
* here come a bunch of assignment operators...
@ -479,20 +489,20 @@ public:
nsString& operator=( const nsAReadableString& aReadable ) { nsAWritableString::operator=(aReadable); return *this; }
#endif
#endif
nsString& operator=(char aChar) {return Assign(aChar);}
nsString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsString& operator=(const char* aCString) {return Assign(aCString);}
nsString& operator=(PRUnichar aChar) {return Assign(aChar);}
nsString& operator=(char aChar) {AssignWithConversion(aChar); return *this;}
nsString& operator=(const char* aCString) {AssignWithConversion(aCString); return *this;}
#ifndef NEW_STRING_APIS
nsString& operator=(const nsString& aString) {return Assign(aString);}
nsString& operator=(const nsStr& aString) {return Assign(aString);}
nsString& operator=(const PRUnichar* aString) {return Assign(aString);}
#endif
#ifdef AIX
nsString& operator=(const nsSubsumeStr& aSubsumeString); // AIX requires a const here
#else
nsString& operator=(nsSubsumeStr& aSubsumeString);
#endif
#endif
/**
* Here's a bunch of methods that append varying types...
@ -873,11 +883,13 @@ public:
nsAutoString(const CBufDescriptor& aBuffer);
nsAutoString(const nsStr& aString);
nsAutoString(const nsAutoString& aString);
#ifdef AIX
nsAutoString(const nsSubsumeStr& aSubsumeStr); // AIX requires a const
#else
nsAutoString(nsSubsumeStr& aSubsumeStr);
#endif // AIX
nsAutoString(PRUnichar aChar);
virtual ~nsAutoString();
@ -924,7 +936,6 @@ public:
};
#endif