From 1d41a0a81bad6992436bf2cc12bac7fba2ffde8e Mon Sep 17 00:00:00 2001 From: "scc%mozilla.org" Date: Sat, 5 Aug 2000 01:15:45 +0000 Subject: [PATCH] still not part of the build; more work adding the new functions. More to come --- string/src/nsReadableUtils.cpp | 22 ++++++++++++++++++++-- xpcom/ds/nsReadableUtils.cpp | 22 ++++++++++++++++++++-- xpcom/string/src/nsReadableUtils.cpp | 22 ++++++++++++++++++++-- 3 files changed, 60 insertions(+), 6 deletions(-) diff --git a/string/src/nsReadableUtils.cpp b/string/src/nsReadableUtils.cpp index 8fd4700304c7..0a11058e124b 100755 --- a/string/src/nsReadableUtils.cpp +++ b/string/src/nsReadableUtils.cpp @@ -25,18 +25,34 @@ #include "nsReadableUtils.h" -char* -ToNewCString( const nsAReadableString& aSourceString ) +template +inline +CharT* +CopyStringToNewZeroTerminatedBuffer( const basic_nsAReadableString& aSourceString ) { + // no conversion needed, just allocate a buffer of the correct length and copy into it + + CharT* result = NS_STATIC_CAST(CharT*, nsMemory::Alloc( (aSourceString.Length()+1) * sizeof(CharT) )); + *copy_string(aSourceString.BeginReading(), aSourceString.EndReading(), result) = CharT(0); + return result; } char* ToNewCString( const nsAReadableCString& aSourceCString ) { + return CopyStringToNewZeroTerminatedBuffer(aSourceCString); } PRUnichar* ToNewUnicode( const nsAReadableString& aSourceString ) + { + return CopyStringToNewZeroTerminatedBuffer(aSourceString); + } + + + +char* +ToNewCString( const nsAReadableString& aSourceString ) { } @@ -45,6 +61,8 @@ ToNewUnicode( const nsAReadableCString& aSourceCString ) { } + + PRBool IsASCII( const nsAReadableString& aSourceString ) { diff --git a/xpcom/ds/nsReadableUtils.cpp b/xpcom/ds/nsReadableUtils.cpp index 8fd4700304c7..0a11058e124b 100755 --- a/xpcom/ds/nsReadableUtils.cpp +++ b/xpcom/ds/nsReadableUtils.cpp @@ -25,18 +25,34 @@ #include "nsReadableUtils.h" -char* -ToNewCString( const nsAReadableString& aSourceString ) +template +inline +CharT* +CopyStringToNewZeroTerminatedBuffer( const basic_nsAReadableString& aSourceString ) { + // no conversion needed, just allocate a buffer of the correct length and copy into it + + CharT* result = NS_STATIC_CAST(CharT*, nsMemory::Alloc( (aSourceString.Length()+1) * sizeof(CharT) )); + *copy_string(aSourceString.BeginReading(), aSourceString.EndReading(), result) = CharT(0); + return result; } char* ToNewCString( const nsAReadableCString& aSourceCString ) { + return CopyStringToNewZeroTerminatedBuffer(aSourceCString); } PRUnichar* ToNewUnicode( const nsAReadableString& aSourceString ) + { + return CopyStringToNewZeroTerminatedBuffer(aSourceString); + } + + + +char* +ToNewCString( const nsAReadableString& aSourceString ) { } @@ -45,6 +61,8 @@ ToNewUnicode( const nsAReadableCString& aSourceCString ) { } + + PRBool IsASCII( const nsAReadableString& aSourceString ) { diff --git a/xpcom/string/src/nsReadableUtils.cpp b/xpcom/string/src/nsReadableUtils.cpp index 8fd4700304c7..0a11058e124b 100755 --- a/xpcom/string/src/nsReadableUtils.cpp +++ b/xpcom/string/src/nsReadableUtils.cpp @@ -25,18 +25,34 @@ #include "nsReadableUtils.h" -char* -ToNewCString( const nsAReadableString& aSourceString ) +template +inline +CharT* +CopyStringToNewZeroTerminatedBuffer( const basic_nsAReadableString& aSourceString ) { + // no conversion needed, just allocate a buffer of the correct length and copy into it + + CharT* result = NS_STATIC_CAST(CharT*, nsMemory::Alloc( (aSourceString.Length()+1) * sizeof(CharT) )); + *copy_string(aSourceString.BeginReading(), aSourceString.EndReading(), result) = CharT(0); + return result; } char* ToNewCString( const nsAReadableCString& aSourceCString ) { + return CopyStringToNewZeroTerminatedBuffer(aSourceCString); } PRUnichar* ToNewUnicode( const nsAReadableString& aSourceString ) + { + return CopyStringToNewZeroTerminatedBuffer(aSourceString); + } + + + +char* +ToNewCString( const nsAReadableString& aSourceString ) { } @@ -45,6 +61,8 @@ ToNewUnicode( const nsAReadableCString& aSourceCString ) { } + + PRBool IsASCII( const nsAReadableString& aSourceString ) {