mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-19 00:15:30 +00:00
change (Const)String::c_str to never return 0 (rather return empty string) -> can be used to simplify code. Also don't use stricmp in </<=/>/>= operators, it is inconsisten with == and != operators
svn-id: r11169
This commit is contained in:
parent
ba1cf0e957
commit
82aac86edf
@ -221,39 +221,29 @@ void String::ensureCapacity(int new_len, bool keep_old) {
|
||||
#pragma mark -
|
||||
|
||||
bool ConstString::operator ==(const ConstString &x) const {
|
||||
return (_len == x._len) && ((_len == 0) || (0 == strcmp(_str, x._str)));
|
||||
return (0 == strcmp(c_str(), x.c_str()));
|
||||
}
|
||||
|
||||
bool ConstString::operator ==(const char *x) const {
|
||||
if (_str == 0)
|
||||
return (x == 0) || (*x == 0);
|
||||
if (x == 0)
|
||||
return (_len == 0);
|
||||
return (0 == strcmp(_str, x));
|
||||
assert(x != 0);
|
||||
return (0 == strcmp(c_str(), x));
|
||||
}
|
||||
|
||||
bool ConstString::operator !=(const ConstString &x) const {
|
||||
return (_len != x._len) || ((_len != 0) && (0 != strcmp(_str, x._str)));
|
||||
return (0 != strcmp(c_str(), x.c_str()));
|
||||
}
|
||||
|
||||
bool ConstString::operator !=(const char *x) const {
|
||||
if (_str == 0)
|
||||
return (x != 0) && (*x != 0);
|
||||
if (x == 0)
|
||||
return (_len != 0);
|
||||
return (0 != strcmp(_str, x));
|
||||
assert(x != 0);
|
||||
return (0 != strcmp(c_str(), x));
|
||||
}
|
||||
|
||||
bool ConstString::operator < (const ConstString &x) const {
|
||||
if (!_len || !x._len) // Any or both empty?
|
||||
return !_len && x._len; // Less only if this string is empty and the other isn't
|
||||
return scumm_stricmp(_str, x._str) < 0;
|
||||
return strcmp(c_str(), x.c_str()) < 0;
|
||||
}
|
||||
|
||||
bool ConstString::operator <= (const ConstString &x) const {
|
||||
if (!_len || !x._len) // Any or both empty?
|
||||
return !_len; // Less or equal unless the other string is empty and this one isn't
|
||||
return scumm_stricmp(_str, x._str) <= 0;
|
||||
return strcmp(c_str(), x.c_str()) <= 0;
|
||||
}
|
||||
|
||||
bool ConstString::operator > (const ConstString &x) const {
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
return _str[idx];
|
||||
}
|
||||
|
||||
const char *c_str() const { return _str; }
|
||||
const char *c_str() const { return _str ? _str : ""; }
|
||||
int size() const { return _len; }
|
||||
|
||||
bool isEmpty() const { return (_len == 0); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user