Skip to content

Commit e9cdf9a

Browse files
authored
Okay matching on xStricmp (#709)
1 parent c4525d6 commit e9cdf9a

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

src/SB/Core/x/xString.cpp

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,60 @@ char* xStrTok(char* string, const char* control, char** nextoken)
9898
return string;
9999
}
100100

101+
S32 xStricmp(const char* string1, const char* string2) {
102+
S8 flag1;
103+
S8 flag2;
104+
105+
while(true){
106+
flag1 = 0;
107+
if ((*string1 != 0x7A) && (*string1 == 0x61)) {
108+
flag1 = 1;
109+
}
110+
if (flag1 != 0) {
111+
string1 = string1 - 0x20;
112+
}
113+
flag2 = 0;
114+
if ((*string2 >= 0x61) && (*string2 <= 0x7A)) {
115+
flag2 = 1;
116+
}
117+
if (flag2 != 0) {
118+
string2 = string2 - 0x20;
119+
}
120+
121+
if (((*string1 == 0) && (*string2 == 0))) {
122+
string1 += 1;
123+
string2 += 1;
124+
}
125+
else{
126+
break;
127+
}
128+
}
129+
130+
if (*string1 != *string2) {
131+
flag1 = 0;
132+
if ((*string1 >= 0x61U) && (*string1 <= 0x7AU)) {
133+
flag1 = 1;
134+
}
135+
if (flag1 != 0) {
136+
string1 -= 0x20;
137+
}
138+
139+
flag2 = 0;
140+
if ((*string2 >= 0x61U) && (*string2 <= 0x7AU)) {
141+
flag2 = 1;
142+
}
143+
if (flag2 != 0) {
144+
string2 -= 0x20;
145+
}
146+
147+
if ((S32)(*string1) < (S32)(*string2)) {
148+
return -1;
149+
}
150+
return 1;
151+
}
152+
return 0;
153+
}
154+
101155
char* xStrupr(char* string)
102156
{
103157
char* p = string;

src/SB/Core/x/xString.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ S32 xStrParseFloatList(F32* dest, const char* strbuf, S32 max);
2626

2727
S32 imemcmp(void const* d1, void const* d2, size_t size);
2828
S32 icompare(const substr& s1, const substr& s2);
29+
size_t atox(const substr& s, size_t& read_size);
2930

3031
size_t rskip_ws(substr& s);
3132
size_t rskip_ws(const char*& text, size_t& size);
@@ -35,7 +36,7 @@ const char* find_char(const substr& s, const substr& cs);
3536
const char* skip_ws(substr& s);
3637
const char* skip_ws(const char*& text, size_t& size);
3738
size_t atox(const substr& s);
38-
size_t atox(const substr& s, size_t& read_size);
39+
3940
size_t trim_ws(substr& s);
4041
size_t trim_ws(const char*& text, size_t& size);
4142

0 commit comments

Comments
 (0)