#include <ctype.h>
#include <stdio.h>
#include <general.h>
#include <stringtools.h>
#include <charsettools.h>
int stringcasecmp(const std::string &a, const std::string &b)
{
return stricmp(a.c_str(), b.c_str());
}
void ibm2ascii(std::string &s)
{
std::string new_s;
new_s.reserve(s.size());
for(unsigned i=0; i<s.size(); i++)
{
char ch=s[i];
if(ch>=0 && ch<126)
{
if(ch>=' ') new_s+=ch;
}
else
{
switch(ch)
{
case '': new_s+="ae"; break;
case '': new_s+="oe"; break;
case '': new_s+="ue"; break;
case '': new_s+="ss"; break;
case '':
new_s+='A';
new_s+=islower(s[i+1])?'e':'E';
break;
case '':
new_s+='O';
new_s+=islower(s[i+1])?'e':'E';
break;
case '':
new_s+='U';
new_s+=islower(s[i+1])?'e':'E';
break;
default:
break;
}
}
}
s=new_s;
}
void iso2ascii(std::string &s)
{
std::string new_s;
new_s.reserve(s.size());
for(unsigned i=0; i<s.size(); i++)
{
char ch=s[i];
if(ch>=0 && ch<126)
{
if(ch>=' ') new_s+=ch;
}
else
{
switch(ch)
{
case '': new_s+="ae"; break;
case '': new_s+="oe"; break;
case '': new_s+="ue"; break;
case '': new_s+="ss"; break;
case '':
new_s+='A';
new_s+=islower(s[i+1])?'e':'E';
break;
case '':
new_s+='O';
new_s+=islower(s[i+1])?'e':'E';
break;
case '':
new_s+='U';
new_s+=islower(s[i+1])?'e':'E';
break;
default:
break;
}
}
}
}
void ibm2iso(std::string &s)
{
for(unsigned i=0; i<s.size(); i++)
ibm2iso(&s[i], 1);
}
void iso2ibm(std::string &s)
{
for(unsigned i=0; i<s.size(); i++)
iso2ibm(&s[i], 1);
}
void upstring(std::string &s)
{
for(unsigned i=0; i<s.size(); i++)
{
register char ch=s[i];
if(isascii(ch) && islower(ch))
s[i]=toupper(ch);
}
}
std::string up_string(const std::string &_s)
{
std::string s=_s;
upstring(s);
return s;
}
void dnstring(std::string &s)
{
for(unsigned i=0; i<s.size(); i++)
{
register char ch=s[i];
if(isascii(ch) && isupper(ch))
s[i]=tolower(ch);
}
}
std::string dn_string(const std::string &_s)
{
std::string s=_s;
dnstring(s);
return s;
}
bool check_joker(const std::string &mask, const std::string &filename,
bool casei)
{
return checkjoker(mask.c_str(), filename.c_str(), casei);
}
std::string i2string(unsigned i)
{
char tempstr[TEXTLEN];
snprintf(tempstr, TEXTLEN, "%u", i);
return std::string(tempstr);
}
std::string i2string(dword i)
{
char tempstr[TEXTLEN];
snprintf(tempstr, TEXTLEN, "%lu", i);
return std::string(tempstr);
}
std::string i2string(signed i)
{
char tempstr[TEXTLEN];
snprintf(tempstr, TEXTLEN, "%d", i);
return std::string(tempstr);
}
syntax highlighted by Code2HTML, v. 0.9.1