Browse Source
Remove "super lame/broken" file_search compilation unit that was leftover from Dolphin
pull/15/merge
Remove "super lame/broken" file_search compilation unit that was leftover from Dolphin
pull/15/merge
3 changed files with 0 additions and 128 deletions
@ -1,103 +0,0 @@ |
|||
// Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project
|
|||
// Licensed under GPLv2 or any later version
|
|||
// Refer to the license.txt file included.
|
|||
|
|||
|
|||
#include "common/common.h"
|
|||
|
|||
#ifndef _WIN32
|
|||
#include <dirent.h>
|
|||
#else
|
|||
#include <windows.h>
|
|||
#endif
|
|||
|
|||
#include <algorithm>
|
|||
|
|||
#include "common/file_search.h"
|
|||
#include "common/string_util.h"
|
|||
|
|||
|
|||
CFileSearch::CFileSearch(const CFileSearch::XStringVector& _rSearchStrings, const CFileSearch::XStringVector& _rDirectories) |
|||
{ |
|||
// Reverse the loop order for speed?
|
|||
for (size_t j = 0; j < _rSearchStrings.size(); j++) |
|||
{ |
|||
for (size_t i = 0; i < _rDirectories.size(); i++) |
|||
{ |
|||
FindFiles(_rSearchStrings[j], _rDirectories[i]); |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
void CFileSearch::FindFiles(const std::string& _searchString, const std::string& _strPath) |
|||
{ |
|||
std::string GCMSearchPath; |
|||
Common::BuildCompleteFilename(GCMSearchPath, _strPath, _searchString); |
|||
#ifdef _WIN32
|
|||
WIN32_FIND_DATA findData; |
|||
HANDLE FindFirst = FindFirstFile(Common::UTF8ToTStr(GCMSearchPath).c_str(), &findData); |
|||
|
|||
if (FindFirst != INVALID_HANDLE_VALUE) |
|||
{ |
|||
bool bkeepLooping = true; |
|||
|
|||
while (bkeepLooping) |
|||
{ |
|||
if (findData.cFileName[0] != '.') |
|||
{ |
|||
std::string strFilename; |
|||
Common::BuildCompleteFilename(strFilename, _strPath, Common::TStrToUTF8(findData.cFileName)); |
|||
m_FileNames.push_back(strFilename); |
|||
} |
|||
|
|||
bkeepLooping = FindNextFile(FindFirst, &findData) ? true : false; |
|||
} |
|||
} |
|||
FindClose(FindFirst); |
|||
|
|||
|
|||
#else
|
|||
// TODO: super lame/broken
|
|||
|
|||
auto end_match(_searchString); |
|||
|
|||
// assuming we have a "*.blah"-like pattern
|
|||
if (!end_match.empty() && end_match[0] == '*') |
|||
end_match.erase(0, 1); |
|||
|
|||
// ugly
|
|||
if (end_match == ".*") |
|||
end_match.clear(); |
|||
|
|||
DIR* dir = opendir(_strPath.c_str()); |
|||
|
|||
if (!dir) |
|||
return; |
|||
|
|||
while (auto const dp = readdir(dir)) |
|||
{ |
|||
std::string found(dp->d_name); |
|||
|
|||
if ((found != ".") && (found != "..") |
|||
&& (found.size() >= end_match.size()) |
|||
&& std::equal(end_match.rbegin(), end_match.rend(), found.rbegin())) |
|||
{ |
|||
std::string full_name; |
|||
if (_strPath.c_str()[_strPath.size()-1] == DIR_SEP_CHR) |
|||
full_name = _strPath + found; |
|||
else |
|||
full_name = _strPath + DIR_SEP + found; |
|||
|
|||
m_FileNames.push_back(full_name); |
|||
} |
|||
} |
|||
|
|||
closedir(dir); |
|||
#endif
|
|||
} |
|||
|
|||
const CFileSearch::XStringVector& CFileSearch::GetFileNames() const |
|||
{ |
|||
return m_FileNames; |
|||
} |
|||
@ -1,23 +0,0 @@ |
|||
// Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project |
|||
// Licensed under GPLv2 or any later version |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
#include <string> |
|||
#include <vector> |
|||
|
|||
class CFileSearch |
|||
{ |
|||
public: |
|||
typedef std::vector<std::string>XStringVector; |
|||
|
|||
CFileSearch(const XStringVector& _rSearchStrings, const XStringVector& _rDirectories); |
|||
const XStringVector& GetFileNames() const; |
|||
|
|||
private: |
|||
|
|||
void FindFiles(const std::string& _searchString, const std::string& _strPath); |
|||
|
|||
XStringVector m_FileNames; |
|||
}; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue