remove *tot - non-portable and inefficient. replaced with stringstream
This was SVN commit r529.
This commit is contained in:
parent
df62c14469
commit
b09211c4a3
@ -351,52 +351,3 @@ void base32(const int len, const u8* in, u8* out)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifndef _WIN32
|
||||
|
||||
char *_itoa(int value, char *out, int radix)
|
||||
{
|
||||
return _ltoa(value, out, radix);
|
||||
}
|
||||
|
||||
static const char digits[]="0123456789abcdef";
|
||||
|
||||
char *_ultoa(unsigned long int value, char *out, int radix)
|
||||
{
|
||||
char buf[21];
|
||||
char *p=buf+21;
|
||||
|
||||
do
|
||||
{
|
||||
*(--p)=digits[value % radix];
|
||||
value /= radix;
|
||||
}
|
||||
while (value);
|
||||
|
||||
memcpy(out, p, (buf+21)-p);
|
||||
out[(buf+21)-p]=0;
|
||||
return out;
|
||||
}
|
||||
|
||||
char *_ltoa(long val, char *out, int radix)
|
||||
{
|
||||
char buf[21];
|
||||
char *p=buf+21;
|
||||
bool sign=val < 0;
|
||||
if (sign) val=-val;
|
||||
|
||||
do
|
||||
{
|
||||
*(--p)=digits[val % radix];
|
||||
val /= radix;
|
||||
}
|
||||
while (val);
|
||||
|
||||
if (sign) *(--p) = '-';
|
||||
|
||||
memcpy(out, p, (buf+21)-p);
|
||||
out[(buf+21)-p]=0;
|
||||
return out;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -14,6 +14,8 @@
|
||||
#include "CStr.h"
|
||||
using namespace std;
|
||||
|
||||
#include <sstream>
|
||||
|
||||
CStr::CStr()
|
||||
{
|
||||
// Default Constructor
|
||||
@ -44,43 +46,47 @@ CStr::CStr(TCHAR Char)
|
||||
|
||||
CStr::CStr(int Number)
|
||||
{
|
||||
// Creates CStr from a int
|
||||
m_String = _itot(Number, m_ConversionBuffer, 10);
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
}
|
||||
|
||||
CStr::CStr(unsigned int Number)
|
||||
{
|
||||
// Creates CStr from a uint
|
||||
m_String = _ultot(Number, m_ConversionBuffer, 10);
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
}
|
||||
|
||||
|
||||
CStr::CStr(long Number)
|
||||
{
|
||||
// Creates CStr from a long
|
||||
m_String = _ltot(Number, m_ConversionBuffer, 10);
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
}
|
||||
|
||||
|
||||
CStr::CStr(unsigned long Number)
|
||||
{
|
||||
// Creates CStr from a ulong
|
||||
m_String = _ultot(Number, m_ConversionBuffer, 10);
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
}
|
||||
|
||||
|
||||
CStr::CStr(float Number)
|
||||
{
|
||||
// Creates CStr from a float
|
||||
_tsnprintf(m_ConversionBuffer, CONVERSION_BUFFER_SIZE, FLOAT_CONVERSION, Number);
|
||||
m_String = m_ConversionBuffer;
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
}
|
||||
|
||||
CStr::CStr(double Number)
|
||||
{
|
||||
// Creates CStr from a double
|
||||
_tsnprintf(m_ConversionBuffer, CONVERSION_BUFFER_SIZE, FLOAT_CONVERSION, Number);
|
||||
m_String = m_ConversionBuffer;
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
}
|
||||
|
||||
CStr::~CStr()
|
||||
@ -313,40 +319,54 @@ CStr &CStr::operator=(TCHAR Char)
|
||||
|
||||
CStr& CStr::operator=(int Number)
|
||||
{
|
||||
m_String = _itot(Number, m_ConversionBuffer, 10);
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
CStr& CStr::operator=(long Number)
|
||||
{
|
||||
m_String = _ltot(Number, m_ConversionBuffer, 10);
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
CStr& CStr::operator=(unsigned int Number)
|
||||
{
|
||||
m_String = _ultot(Number, m_ConversionBuffer, 10);
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
CStr& CStr::operator=(unsigned long Number)
|
||||
{
|
||||
m_String = _ultot(Number, m_ConversionBuffer, 10);
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
CStr& CStr::operator=(float Number)
|
||||
{
|
||||
_tsnprintf(m_ConversionBuffer, CONVERSION_BUFFER_SIZE, FLOAT_CONVERSION, Number);
|
||||
m_String = m_ConversionBuffer;
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
return *this;
|
||||
}
|
||||
|
||||
CStr& CStr::operator=(double Number)
|
||||
{
|
||||
_tsnprintf(m_ConversionBuffer, CONVERSION_BUFFER_SIZE, FLOAT_CONVERSION, Number);
|
||||
m_String = m_ConversionBuffer;
|
||||
std::tstringstream ss;
|
||||
ss << Number;
|
||||
ss >> m_String;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -35,10 +35,6 @@ More Info:
|
||||
#ifndef CSTR_H_FIRST
|
||||
#define CSTR_H_FIRST
|
||||
|
||||
// DEFINES/ENUMS
|
||||
#define CONVERSION_BUFFER_SIZE 32
|
||||
#define FLOAT_CONVERSION _T("%.6f")
|
||||
|
||||
enum PS_TRIM_MODE {PS_TRIM_LEFT, PS_TRIM_RIGHT, PS_TRIM_BOTH};
|
||||
|
||||
#ifndef IN_UNIDOUBLER
|
||||
@ -64,34 +60,30 @@ enum PS_TRIM_MODE {PS_TRIM_LEFT, PS_TRIM_RIGHT, PS_TRIM_BOTH};
|
||||
#ifdef _UNICODE
|
||||
|
||||
#define tstring wstring
|
||||
#define tstringstream wstringstream
|
||||
#define _tcout wcout
|
||||
#define _tstod wcstod
|
||||
#define TCHAR wchar_t
|
||||
#define _ttoi _wtoi
|
||||
#define _ttol _wtol
|
||||
#define _itot _itow
|
||||
#define _ultot _itow
|
||||
#define _T(t) L ## t
|
||||
#define _totlower towlower
|
||||
#define _istspace iswspace
|
||||
#define _tsnprintf swprintf
|
||||
#define _ltot _ltow
|
||||
|
||||
#else
|
||||
|
||||
#define tstringstream stringstream
|
||||
#define tstring string
|
||||
#define _tcout cout
|
||||
#define _tstod strtod
|
||||
#define _ttoi atoi
|
||||
#define _ttol atol
|
||||
#define _itot _itoa
|
||||
#define TCHAR char
|
||||
#define _T(t) t
|
||||
#define _istspace isspace
|
||||
#define _tsnprintf snprintf
|
||||
#define _totlower tolower
|
||||
#define _ultot _ultoa
|
||||
#define _ltot _ltoa
|
||||
|
||||
#endif
|
||||
|
||||
@ -200,7 +192,6 @@ public:
|
||||
|
||||
protected:
|
||||
std::tstring m_String;
|
||||
TCHAR m_ConversionBuffer[CONVERSION_BUFFER_SIZE];
|
||||
};
|
||||
|
||||
class CStr_hash_compare
|
||||
|
@ -14,18 +14,16 @@
|
||||
|
||||
// Undef all the Conversion Macros
|
||||
#undef tstring
|
||||
#undef tstringstream
|
||||
#undef _tcout
|
||||
#undef _tstod
|
||||
#undef _ttoi
|
||||
#undef _ttol
|
||||
#undef _itot
|
||||
#undef TCHAR
|
||||
#undef _T
|
||||
#undef _istspace
|
||||
#undef _tsnprintf
|
||||
#undef _totlower
|
||||
#undef _ultot
|
||||
#undef _ltot
|
||||
|
||||
// Now include the 8-bit version under the name CStr8
|
||||
#undef _UNICODE
|
||||
|
Loading…
Reference in New Issue
Block a user