add last backwards-compatible version
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
#include "pfc.h"
|
||||
#include <set>
|
||||
|
||||
namespace pfc {
|
||||
|
||||
@@ -10,40 +9,6 @@ void string_receiver::add_char(t_uint32 p_char)
|
||||
if (len>0) add_string(temp,len);
|
||||
}
|
||||
|
||||
void string_base::skip_trailing_chars( const char * lstCharsStr ) {
|
||||
std::set<unsigned> lstChars;
|
||||
for ( ;; ) {
|
||||
unsigned c;
|
||||
auto delta = utf8_decode_char( lstCharsStr, c );
|
||||
if ( delta == 0 ) break;
|
||||
lstCharsStr += delta;
|
||||
lstChars.insert( c );
|
||||
}
|
||||
|
||||
const char * str = get_ptr();
|
||||
t_size ptr,trunc = 0;
|
||||
bool need_trunc = false;
|
||||
for(ptr=0;str[ptr];)
|
||||
{
|
||||
unsigned c;
|
||||
t_size delta = utf8_decode_char(str+ptr,c);
|
||||
if (delta==0) break;
|
||||
if ( lstChars.count( c ) > 0 )
|
||||
{
|
||||
if (!need_trunc) {
|
||||
need_trunc = true;
|
||||
trunc = ptr;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
need_trunc = false;
|
||||
}
|
||||
ptr += delta;
|
||||
}
|
||||
if (need_trunc) truncate(trunc);
|
||||
}
|
||||
|
||||
void string_base::skip_trailing_char(unsigned skip)
|
||||
{
|
||||
const char * str = get_ptr();
|
||||
@@ -965,7 +930,6 @@ double parse_timecode(const char * in) {
|
||||
}
|
||||
|
||||
format_time_ex::format_time_ex(double p_seconds,unsigned p_extra) {
|
||||
if (p_seconds < 0) {m_buffer << "-"; p_seconds = -p_seconds;}
|
||||
t_uint64 pow10 = pow10_helper(p_extra);
|
||||
t_uint64 ticks = pfc::rint64(pow10 * p_seconds);
|
||||
|
||||
@@ -1029,7 +993,7 @@ int stringCompareCaseInsensitive(const char * s1, const char * s2) {
|
||||
}
|
||||
}
|
||||
|
||||
void format_file_size_short::format(t_uint64 size) {
|
||||
format_file_size_short::format_file_size_short(t_uint64 size) {
|
||||
t_uint64 scale = 1;
|
||||
const char * unit = "B";
|
||||
const char * const unitTable[] = {"B","KB","MB","GB","TB"};
|
||||
@@ -1111,17 +1075,12 @@ void string_base::truncate_to_parent_path() {
|
||||
this->truncate( at );
|
||||
}
|
||||
|
||||
size_t string_base::replace_string(const char * replace, const char * replaceWith, t_size start) {
|
||||
string_formatter temp;
|
||||
size_t ret = replace_string_ex(temp, replace, replaceWith, start);
|
||||
if ( ret > 0 ) * this = temp;
|
||||
return ret;
|
||||
}
|
||||
size_t string_base::replace_string_ex (string_base & temp, const char * replace, const char * replaceWith, t_size start) const {
|
||||
t_size string_base::replace_string ( const char * replace, const char * replaceWith, t_size start) {
|
||||
string_formatter temp;
|
||||
size_t srcDone = 0, walk = start;
|
||||
size_t occurances = 0;
|
||||
const char * const source = this->get_ptr();
|
||||
bool clear = false;
|
||||
|
||||
const size_t replaceLen = strlen( replace );
|
||||
for(;;) {
|
||||
const char * ptr = strstr( source + walk, replace );
|
||||
@@ -1135,18 +1094,15 @@ size_t string_base::replace_string_ex (string_base & temp, const char * replace,
|
||||
}
|
||||
++occurances;
|
||||
walk = ptr - source;
|
||||
if (! clear ) {
|
||||
temp.reset();
|
||||
clear = true;
|
||||
}
|
||||
temp.add_string( source + srcDone, walk - srcDone );
|
||||
temp.add_string( replaceWith );
|
||||
walk += replaceLen;
|
||||
srcDone = walk;
|
||||
}
|
||||
this->set_string( temp );
|
||||
return occurances;
|
||||
|
||||
}
|
||||
|
||||
void urlEncodeAppendRaw(pfc::string_base & out, const char * in, t_size inSize) {
|
||||
for(t_size walk = 0; walk < inSize; ++walk) {
|
||||
const char c = in[walk];
|
||||
@@ -1190,7 +1146,7 @@ uint32_t charLower(uint32_t param)
|
||||
}
|
||||
#ifdef PFC_WINDOWS_DESKTOP_APP
|
||||
else if (param<0x10000) {
|
||||
return (uint32_t)(size_t)CharLowerW((WCHAR*)(size_t)param);
|
||||
return (unsigned)CharLowerW((WCHAR*)param);
|
||||
}
|
||||
#endif
|
||||
else return param;
|
||||
@@ -1204,7 +1160,7 @@ uint32_t charUpper(uint32_t param)
|
||||
}
|
||||
#ifdef PFC_WINDOWS_DESKTOP_APP
|
||||
else if (param<0x10000) {
|
||||
return (uint32_t)(size_t)CharUpperW((WCHAR*)(size_t)param);
|
||||
return (unsigned)CharUpperW((WCHAR*)param);
|
||||
}
|
||||
#endif
|
||||
else return param;
|
||||
@@ -1334,34 +1290,4 @@ void string_base::fix_dir_separator(char c) {
|
||||
return equals(make(str) );
|
||||
}
|
||||
|
||||
string8 lineEndingsToWin(const char * str) {
|
||||
string8 ret;
|
||||
const char * walk = str;
|
||||
for( ;; ) {
|
||||
const char * eol = strchr( walk, '\n' );
|
||||
if ( eol == nullptr ) {
|
||||
ret += walk; break;
|
||||
}
|
||||
const char * next = eol + 1;
|
||||
if ( eol > walk ) {
|
||||
if (eol[-1] == '\r') --eol;
|
||||
if ( eol > walk ) ret.add_string_nc(walk, eol-walk);
|
||||
}
|
||||
ret.add_string_nc("\r\n",2);
|
||||
walk = next;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
string8 stringToUpper(const char * str, size_t len) {
|
||||
string8 ret;
|
||||
stringToUpperAppend(ret, str, len);
|
||||
return ret;
|
||||
}
|
||||
string8 stringToLower(const char * str, size_t len) {
|
||||
string8 ret;
|
||||
stringToLowerAppend(ret, str, len);
|
||||
return ret;
|
||||
}
|
||||
|
||||
} //namespace pfc
|
||||
|
||||
Reference in New Issue
Block a user