summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2013-06-05 10:05:29 +0200
committerTannin <devnull@localhost>2013-06-05 10:05:29 +0200
commit97111de1409a59eea9e7ab5050ab70f4d01ddb8e (patch)
tree6d3ed6dd899573d23bef15adb2519173cd844b76 /src/shared
parent280691ebc36d34c803a5bd8e01616680b0d2fafb (diff)
parent1606c1366f5d0ba304334b0e57680fb99feb88b9 (diff)
Merge
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/directoryentry.cpp6
-rw-r--r--src/shared/util.cpp13
-rw-r--r--src/shared/util.h2
3 files changed, 18 insertions, 3 deletions
diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp
index abf9affb..9958b934 100644
--- a/src/shared/directoryentry.cpp
+++ b/src/shared/directoryentry.cpp
@@ -192,7 +192,6 @@ void FileEntry::addOrigin(int origin, FILETIME fileTime, const std::wstring &arc
m_Origin = origin;
m_FileTime = fileTime;
m_Archive = archive;
-// } else if (FilesOrigin::getByID(origin).getPriority() > FilesOrigin::getByID(m_Origin).getPriority()) {
} else if (m_Parent->getOriginByID(origin).getPriority() > m_Parent->getOriginByID(m_Origin).getPriority()) {
if (std::find(m_Alternatives.begin(), m_Alternatives.end(), m_Origin) == m_Alternatives.end()) {
m_Alternatives.push_back(m_Origin);
@@ -269,7 +268,10 @@ bool FileEntry::removeOrigin(int origin)
// sorted by priority descending
static bool ByOriginPriority(DirectoryEntry *entry, int LHS, int RHS)
{
- return entry->getOriginByID(LHS).getPriority() < entry->getOriginByID(RHS).getPriority();
+ int l = entry->getOriginByID(LHS).getPriority(); if (l < 0) l = INT_MAX;
+ int r = entry->getOriginByID(RHS).getPriority(); if (r < 0) r = INT_MAX;
+
+ return l < r;
}
diff --git a/src/shared/util.cpp b/src/shared/util.cpp
index e61ae8a6..1c4bf5b6 100644
--- a/src/shared/util.cpp
+++ b/src/shared/util.cpp
@@ -28,6 +28,19 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
namespace MOShared {
+bool FileExists(const std::string &filename)
+{
+ WIN32_FIND_DATAA findData;
+ ZeroMemory(&findData, sizeof(WIN32_FIND_DATAA));
+ HANDLE search = ::FindFirstFileExA(filename.c_str(), FindExInfoStandard, &findData, FindExSearchNameMatch, NULL, 0);
+ if (search == INVALID_HANDLE_VALUE) {
+ return false;
+ } else {
+ FindClose(search);
+ return true;
+ }
+}
+
bool FileExists(const std::wstring &filename)
{
WIN32_FIND_DATAW findData;
diff --git a/src/shared/util.h b/src/shared/util.h
index 80983cb0..4af1fb1e 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -30,7 +30,7 @@ namespace MOShared {
static const int MAXPATH_UNICODE = 32767;
-
+bool FileExists(const std::string &filename);
bool FileExists(const std::wstring &filename);
bool FileExists(const std::wstring &searchPath, const std::wstring &filename);