blob: 5c6ba2560b023162c5daef15ac6c9089246dfd15 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
From 868c2dd6f7c7fe50c240277ea5cb2acde43ede4a Mon Sep 17 00:00:00 2001
From: KokaKiwi <kokakiwi+git@kokakiwi.net>
Date: Sat, 11 Jun 2022 23:08:31 +0200
Subject: [PATCH 3/3] fix: Deduplicate resources directories
It seems to actually happens despite xdgpp already doing that...
---
lib/libimhex/include/hex/helpers/utils.hpp | 11 +++++++++++
lib/libimhex/source/helpers/fs.cpp | 4 ++++
2 files changed, 15 insertions(+)
diff --git a/lib/libimhex/include/hex/helpers/utils.hpp b/lib/libimhex/include/hex/helpers/utils.hpp
index 5f4e29af..26ff62df 100644
--- a/lib/libimhex/include/hex/helpers/utils.hpp
+++ b/lib/libimhex/include/hex/helpers/utils.hpp
@@ -234,6 +234,17 @@ namespace hex {
return result;
}
+ template<typename T>
+ void deduplicateVector(std::vector<T> &items) {
+ auto end = items.end();
+
+ for (auto it = items.begin(); it != end; ++it) {
+ end = std::remove(it + 1, end, *it);
+ }
+
+ items.erase(end, items.end());
+ }
+
std::vector<std::string> splitString(const std::string &string, const std::string &delimiter);
std::string combineStrings(const std::vector<std::string> &strings, const std::string &delimiter = "");
diff --git a/lib/libimhex/source/helpers/fs.cpp b/lib/libimhex/source/helpers/fs.cpp
index b756769b..c50c6de5 100644
--- a/lib/libimhex/source/helpers/fs.cpp
+++ b/lib/libimhex/source/helpers/fs.cpp
@@ -1,4 +1,5 @@
#include <hex/helpers/fs.hpp>
+#include <hex/helpers/utils.hpp>
#include <hex/api/content_registry.hpp>
#include <hex/helpers/fs_macos.hpp>
@@ -266,6 +267,9 @@ namespace hex::fs {
if (exePath && !exePath->empty())
dataDirs.push_back(exePath->parent_path());
+ hex::deduplicateVector(configDirs);
+ hex::deduplicateVector(dataDirs);
+
switch (path) {
case ImHexPath::Patterns:
addUserDirs(dataDirs);
--
2.37.0
|