home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.rarlab.com
/
2014.05.ftp.rarlab.com.tar
/
ftp.rarlab.com
/
rar
/
unrar_vms_alpha-3.6.5.zip
/
strfn.cxx
< prev
next >
Wrap
C/C++ Source or Header
|
2006-06-27
|
2KB
|
166 lines
#include "rar.hpp"
const char *NullToEmpty(const char *Str)
{
return(Str==NULL ? "":Str);
}
const wchar *NullToEmpty(const wchar *Str)
{
return(Str==NULL ? (const wchar *)L"":Str);
}
char *IntNameToExt(const char *Name)
{
static char OutName[NM];
IntToExt(Name,OutName);
return(OutName);
}
void ExtToInt(const char *Src,char *Dest)
{
#if defined(_WIN_32)
CharToOem(Src,Dest);
#else
if (Dest!=Src)
strcpy(Dest,Src);
#endif
}
void IntToExt(const char *Src,char *Dest)
{
#if defined(_WIN_32)
OemToChar(Src,Dest);
#else
if (Dest!=Src)
strcpy(Dest,Src);
#endif
}
char* strlower(char *Str)
{
#ifdef _WIN_32
CharLower((LPTSTR)Str);
#else
for (char *ChPtr=Str;*ChPtr;ChPtr++)
*ChPtr=(char)loctolower(*ChPtr);
#endif
return(Str);
}
char* strupper(char *Str)
{
#ifdef _WIN_32
CharUpper((LPTSTR)Str);
#else
for (char *ChPtr=Str;*ChPtr;ChPtr++)
*ChPtr=(char)loctoupper(*ChPtr);
#endif
return(Str);
}
int stricomp(const char *Str1,const char *Str2)
{
char S1[NM*2],S2[NM*2];
strncpy(S1,Str1,sizeof(S1));
strncpy(S2,Str2,sizeof(S2));
return(strcmp(strupper(S1),strupper(S2)));
}
int strnicomp(const char *Str1,const char *Str2,int N)
{
char S1[512],S2[512];
strncpy(S1,Str1,sizeof(S1));
strncpy(S2,Str2,sizeof(S2));
return(strncmp(strupper(S1),strupper(S2),N));
}
char* RemoveEOL(char *Str)
{
for (int I=strlen(Str)-1;I>=0 && (Str[I]=='\r' || Str[I]=='\n' || Str[I]==' ' || Str[I]=='\t');I--)
Str[I]=0;
return(Str);
}
char* RemoveLF(char *Str)
{
for (int I=strlen(Str)-1;I>=0 && (Str[I]=='\r' || Str[I]=='\n');I--)
Str[I]=0;
return(Str);
}
unsigned int loctolower(byte ch)
{
#ifdef _WIN_32
return((int)CharLower((LPTSTR)ch));
#else
return(tolower(ch));
#endif
}
unsigned int loctoupper(byte ch)
{
#ifdef _WIN_32
return((int)CharUpper((LPTSTR)ch));
#else
return(toupper(ch));
#endif
}
bool LowAscii(const char *Str)
{
for (int I=0;Str[I]!=0;I++)
if ((byte)Str[I]<32 || (byte)Str[I]>127)
return(false);
return(true);
}
bool LowAscii(const wchar *Str)
{
for (int I=0;Str[I]!=0;I++)
if (Str[I]<32 || Str[I]>127)
return(false);
return(true);
}
int stricompc(const char *Str1,const char *Str2)
{
#if defined(_UNIX)
return(strcmp(Str1,Str2));
#else
return(stricomp(Str1,Str2));
#endif
}
#ifndef SFX_MODULE
int stricompcw(const wchar *Str1,const wchar *Str2)
{
#if defined(_UNIX)
return(strcmpw(Str1,Str2));
#else
return(stricmpw(Str1,Str2));
#endif
}
#endif