mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-13 14:07:01 -04:00
Case insensitive string compare inside installers
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@954 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -348,7 +348,7 @@ bool PackageDirectory::actual_install(const InstallablePackage& package, const S
|
|||||||
const Packaged::FileInfos& file_infos = installer.getFileInfos();
|
const Packaged::FileInfos& file_infos = installer.getFileInfos();
|
||||||
for (Packaged::FileInfos::const_iterator it = file_infos.begin() ; it != file_infos.end() ; ++it) {
|
for (Packaged::FileInfos::const_iterator it = file_infos.begin() ; it != file_infos.end() ; ++it) {
|
||||||
String file = it->first;
|
String file = it->first;
|
||||||
if (!is_substr(file,0,name)) continue; // not the right package
|
if (!is_substr_i(file,0,name)) continue; // not the right package
|
||||||
// correct filename
|
// correct filename
|
||||||
String local_file = install_dir + file.substr(name.length());
|
String local_file = install_dir + file.substr(name.length());
|
||||||
create_parent_dirs(local_file);
|
create_parent_dirs(local_file);
|
||||||
|
|||||||
@@ -370,6 +370,17 @@ bool is_substr(const String& str, size_t pos, const String& cmp) {
|
|||||||
return is_substr(str, pos, cmp.c_str());
|
return is_substr(str, pos, cmp.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool is_substr_i(const String& str, size_t pos, const Char* cmp) {
|
||||||
|
for (String::const_iterator it = str.begin() + pos ; *cmp && it < str.end() ; ++cmp, ++it) {
|
||||||
|
if (toLower(*cmp) != toLower(*it)) return false;
|
||||||
|
}
|
||||||
|
return *cmp == _('\0');
|
||||||
|
}
|
||||||
|
bool is_substr_i(const String& str, size_t pos, const String& cmp) {
|
||||||
|
return is_substr_i(str, pos, cmp.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
bool cannocial_name_compare(const String& as, const Char* b) {
|
bool cannocial_name_compare(const String& as, const Char* b) {
|
||||||
const Char* a = as.c_str();
|
const Char* a = as.c_str();
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|||||||
@@ -178,6 +178,11 @@ bool is_substr(const String& str, size_t pos, const Char* cmp);
|
|||||||
/// Return whether str contains the string cmp at position pos
|
/// Return whether str contains the string cmp at position pos
|
||||||
bool is_substr(const String& str, size_t pos, const String& cmp);
|
bool is_substr(const String& str, size_t pos, const String& cmp);
|
||||||
|
|
||||||
|
/// Return whether str contains the string cmp at position pos, case insensitive compare
|
||||||
|
bool is_substr_i(const String& str, size_t pos, const Char* cmp);
|
||||||
|
/// Return whether str contains the string cmp at position pos, case insensitive compare
|
||||||
|
bool is_substr_i(const String& str, size_t pos, const String& cmp);
|
||||||
|
|
||||||
/// Compare two strings for equality, b may contain '_' where a contains ' '
|
/// Compare two strings for equality, b may contain '_' where a contains ' '
|
||||||
bool cannocial_name_compare(const String& a, const Char* b);
|
bool cannocial_name_compare(const String& a, const Char* b);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user