mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -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();
|
||||
for (Packaged::FileInfos::const_iterator it = file_infos.begin() ; it != file_infos.end() ; ++it) {
|
||||
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
|
||||
String local_file = install_dir + file.substr(name.length());
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
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) {
|
||||
const Char* a = as.c_str();
|
||||
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
|
||||
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 ' '
|
||||
bool cannocial_name_compare(const String& a, const Char* b);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user