version 1.80, 2003/09/26 17:52:18
|
version 1.87.2.1, 2004/02/19 21:55:17
|
|
|
//%///////////////////////////////////////////////////////////////////////////// |
//%2003//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM, |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Development |
// The Open Group, Tivoli Systems |
// Company, L. P., IBM Corp., The Open Group, Tivoli Systems. |
|
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; |
|
// IBM Corp.; EMC Corporation, The Open Group. |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy | // Permission is hereby granted, free of charge, to any person obtaining a copy |
// of this software and associated documentation files (the "Software"), to | // of this software and associated documentation files (the "Software"), to |
|
|
#include "InternalException.h" | #include "InternalException.h" |
#include <iostream> | #include <iostream> |
#include <fstream> | #include <fstream> |
#ifndef PEGASUS_REMOVE_DEPRECATED |
#ifdef PEGASUS_USE_DEPRECATED_INTERFACES |
#include "System.h" // for strcasecmp | #include "System.h" // for strcasecmp |
#endif | #endif |
| |
|
|
| |
CString::CString(const CString& cstr) | CString::CString(const CString& cstr) |
{ | { |
|
_rep = 0; |
|
|
|
if (cstr._rep) |
|
{ |
_rep = (void*)new char[strlen((char*)cstr._rep)+1]; | _rep = (void*)new char[strlen((char*)cstr._rep)+1]; |
strcpy((char*)_rep, (char*)cstr._rep); | strcpy((char*)_rep, (char*)cstr._rep); |
} | } |
|
} |
| |
CString::CString(char* cstr) | CString::CString(char* cstr) |
: _rep(cstr) | : _rep(cstr) |
|
|
CString::~CString() | CString::~CString() |
{ | { |
if (_rep) | if (_rep) |
|
{ |
delete [] (char*)_rep; | delete [] (char*)_rep; |
} | } |
|
} |
| |
CString& CString::operator=(const CString& cstr) | CString& CString::operator=(const CString& cstr) |
{ | { |
|
if (&cstr != this) |
|
{ |
|
if (_rep) |
|
{ |
|
delete [] (char*)_rep; |
|
_rep = 0; |
|
} |
|
if (cstr._rep) |
|
{ |
_rep = (char*)new char[strlen((char*)cstr._rep)+1]; | _rep = (char*)new char[strlen((char*)cstr._rep)+1]; |
strcpy((char*)_rep, (char*)cstr._rep); | strcpy((char*)_rep, (char*)cstr._rep); |
|
} |
|
} |
return *this; | return *this; |
} | } |
| |
|
|
| |
String& String::operator=(const String& str) | String& String::operator=(const String& str) |
{ | { |
return assign(str); |
if (&str != this) |
|
{ |
|
assign(str); |
|
} |
|
return *this; |
} | } |
| |
String& String::assign(const String& str) | String& String::assign(const String& str) |
|
|
Uint32 i = 1; | Uint32 i = 1; |
for (; i < subStrLen; i++) | for (; i < subStrLen; i++) |
if (*pStr++ != *p++ ) | if (*pStr++ != *p++ ) |
{pStr--; break;} // break from loop |
{pStr-=i; break;} // break from loop |
if (i == subStrLen) | if (i == subStrLen) |
return loc; | return loc; |
} | } |
|
|
| |
Uint32 count; | Uint32 count; |
| |
for(count = 0; ((msg16[count]) != Char16(0x00)) && (count <= n); ++count); |
for(count = 0; ((msg16[count]) != Char16(0x00)) && (count < (n - 1)); ++count); |
| |
_rep->c16a.append(msg16, count); | _rep->c16a.append(msg16, count); |
| |
|
|
os << utf8str; | os << utf8str; |
| |
#elif defined(PEGASUS_HAS_ICU) | #elif defined(PEGASUS_HAS_ICU) |
|
if(os == cout || os == cerr){ |
char *buf = NULL; | char *buf = NULL; |
const int size = str.size() * 6; | const int size = str.size() * 6; |
UnicodeString UniStr((const UChar *)str.getChar16Data(), (int32_t)str.size()); | UnicodeString UniStr((const UChar *)str.getChar16Data(), (int32_t)str.size()); |
|
|
os << buf; | os << buf; |
os.flush(); | os.flush(); |
delete [] buf; | delete [] buf; |
#else |
}else{ |
|
CString cstr = str.getCStringUTF8(); |
|
const char* utf8str = cstr; |
|
os << utf8str; |
|
} |
| |
|
#else |
for (Uint32 i = 0, n = str.size(); i < n; i++) | for (Uint32 i = 0, n = str.size(); i < n; i++) |
{ | { |
Uint16 code = str[i]; | Uint16 code = str[i]; |
|
|
return String::compare(str1, str2) >= 0; | return String::compare(str1, str2) >= 0; |
} | } |
| |
#ifndef PEGASUS_REMOVE_DEPRECATED |
#ifdef PEGASUS_USE_DEPRECATED_INTERFACES |
int CompareNoCase(const char* s1, const char* s2) | int CompareNoCase(const char* s1, const char* s2) |
{ | { |
return System::strcasecmp(s1, s2); | return System::strcasecmp(s1, s2); |