diff --git a/src/client/Client.cpp b/src/client/Client.cpp index d694f453f..4c13850a9 100644 --- a/src/client/Client.cpp +++ b/src/client/Client.cpp @@ -413,6 +413,8 @@ std::vector Client::DirectorySearch(std::string directory, std::str { std::vector extensions; extensions.push_back(extension); + for (std::string::iterator iter = search.begin(); iter != search.end(); ++iter) + *iter = toupper(*iter); return DirectorySearch(directory, search, extensions); } @@ -463,18 +465,22 @@ std::vector Client::DirectorySearch(std::string directory, std::str std::vector searchResults; for(std::vector::iterator iter = directoryList.begin(), end = directoryList.end(); iter != end; ++iter) { - std::string filename = *iter; + std::string filename = *iter, tempfilename = *iter; bool extensionMatch = !extensions.size(); for(std::vector::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; + tempfilename = filename.substr(0, filenameLength); break; } } + for (std::string::iterator iter = tempfilename.begin(); iter != tempfilename.end(); ++iter) + *iter = toupper(*iter); bool searchMatch = !search.size(); - if(search.size() && filename.find(search)!=std::string::npos) + if(search.size() && tempfilename.find(search)!=std::string::npos) searchMatch = true; if(searchMatch && extensionMatch)