mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-08-27 01:44:31 +02:00
case insensetive local save searches, fix extention being counted in the match
This commit is contained in:
@@ -413,6 +413,8 @@ std::vector<std::string> Client::DirectorySearch(std::string directory, std::str
|
|||||||
{
|
{
|
||||||
std::vector<std::string> extensions;
|
std::vector<std::string> extensions;
|
||||||
extensions.push_back(extension);
|
extensions.push_back(extension);
|
||||||
|
for (std::string::iterator iter = search.begin(); iter != search.end(); ++iter)
|
||||||
|
*iter = toupper(*iter);
|
||||||
return DirectorySearch(directory, search, extensions);
|
return DirectorySearch(directory, search, extensions);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -463,18 +465,22 @@ std::vector<std::string> Client::DirectorySearch(std::string directory, std::str
|
|||||||
std::vector<std::string> searchResults;
|
std::vector<std::string> searchResults;
|
||||||
for(std::vector<std::string>::iterator iter = directoryList.begin(), end = directoryList.end(); iter != end; ++iter)
|
for(std::vector<std::string>::iterator iter = directoryList.begin(), end = directoryList.end(); iter != end; ++iter)
|
||||||
{
|
{
|
||||||
std::string filename = *iter;
|
std::string filename = *iter, tempfilename = *iter;
|
||||||
bool extensionMatch = !extensions.size();
|
bool extensionMatch = !extensions.size();
|
||||||
for(std::vector<std::string>::iterator extIter = extensions.begin(), extEnd = extensions.end(); extIter != extEnd; ++extIter)
|
for(std::vector<std::string>::iterator extIter = extensions.begin(), extEnd = extensions.end(); extIter != extEnd; ++extIter)
|
||||||
{
|
{
|
||||||
if(filename.find(*extIter, filename.length()-(*extIter).length())==filename.length()-(*extIter).length())
|
int filenameLength = filename.length()-(*extIter).length();
|
||||||
|
if(filename.find(*extIter, filenameLength) == filenameLength)
|
||||||
{
|
{
|
||||||
extensionMatch = true;
|
extensionMatch = true;
|
||||||
|
tempfilename = filename.substr(0, filenameLength);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (std::string::iterator iter = tempfilename.begin(); iter != tempfilename.end(); ++iter)
|
||||||
|
*iter = toupper(*iter);
|
||||||
bool searchMatch = !search.size();
|
bool searchMatch = !search.size();
|
||||||
if(search.size() && filename.find(search)!=std::string::npos)
|
if(search.size() && tempfilename.find(search)!=std::string::npos)
|
||||||
searchMatch = true;
|
searchMatch = true;
|
||||||
|
|
||||||
if(searchMatch && extensionMatch)
|
if(searchMatch && extensionMatch)
|
||||||
|
Reference in New Issue
Block a user