mirror of https://github.com/bsnes-emu/bsnes.git
65 lines
1.2 KiB
C++
Executable File
65 lines
1.2 KiB
C++
Executable File
#ifdef NALL_STRING_INTERNAL_HPP
|
|
|
|
namespace nall {
|
|
|
|
char* strlower(char *str) {
|
|
if(!str) return nullptr;
|
|
int i = 0;
|
|
while(str[i]) {
|
|
str[i] = chrlower(str[i]);
|
|
i++;
|
|
}
|
|
return str;
|
|
}
|
|
|
|
char* strupper(char *str) {
|
|
if(!str) return nullptr;
|
|
int i = 0;
|
|
while(str[i]) {
|
|
str[i] = chrupper(str[i]);
|
|
i++;
|
|
}
|
|
return str;
|
|
}
|
|
|
|
char* qstrlower(char *s) {
|
|
if(!s) return nullptr;
|
|
bool quoted = false;
|
|
while(*s) {
|
|
if(*s == '\"' || *s == '\'') quoted ^= 1;
|
|
if(quoted == false && *s >= 'A' && *s <= 'Z') *s += 0x20;
|
|
s++;
|
|
}
|
|
}
|
|
|
|
char* qstrupper(char *s) {
|
|
if(!s) return nullptr;
|
|
bool quoted = false;
|
|
while(*s) {
|
|
if(*s == '\"' || *s == '\'') quoted ^= 1;
|
|
if(quoted == false && *s >= 'a' && *s <= 'z') *s -= 0x20;
|
|
s++;
|
|
}
|
|
}
|
|
|
|
char* strtr(char *dest, const char *before, const char *after) {
|
|
if(!dest || !before || !after) return dest;
|
|
int sl = strlen(dest), bsl = strlen(before), asl = strlen(after);
|
|
|
|
if(bsl != asl || bsl == 0) return dest; //patterns must be the same length for 1:1 replace
|
|
for(unsigned i = 0; i < sl; i++) {
|
|
for(unsigned l = 0; l < bsl; l++) {
|
|
if(dest[i] == before[l]) {
|
|
dest[i] = after[l];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return dest;
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|