summaryrefslogtreecommitdiff
path: root/backend/pkgtools.cpp
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-05-20 17:53:57 +0200
committerEugen Wissner <belka@caraus.de>2026-05-20 17:53:57 +0200
commit76985de795f33f71684635ad5f14dc84aefea26e (patch)
treee8aed126b84b4ba3a76cf26fb9720c0f83eac594 /backend/pkgtools.cpp
parentc04278ff84c2c4d9c54bbd43c1542e4eace40419 (diff)
downloadkatja-76985de795f33f71684635ad5f14dc84aefea26e.tar.gz
Fix the backend test
Diffstat (limited to 'backend/pkgtools.cpp')
-rw-r--r--backend/pkgtools.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/backend/pkgtools.cpp b/backend/pkgtools.cpp
index 58a752f..80dc4d8 100644
--- a/backend/pkgtools.cpp
+++ b/backend/pkgtools.cpp
@@ -12,6 +12,8 @@ module;
#include <glib-object.h>
#include <string>
#include <regex>
+#include <forward_list>
+#include <filesystem>
export module katja.pkgtools;
@@ -19,6 +21,8 @@ import katja.utils;
export namespace katja
{
+using cache_entry = std::pair<std::string, std::filesystem::path>;
+
class Pkgtools
{
public:
@@ -160,7 +164,7 @@ public:
sqlite3_finalize(statement);
}
- virtual GSList *collect_cache_info (const char *tmpl) noexcept = 0;
+ virtual std::forward_list<cache_entry> collect_cache_info(const char *tmpl) noexcept = 0;
virtual void generate_cache(JobData *job_data, const char *tmpl) noexcept = 0;
protected:
@@ -170,10 +174,11 @@ protected:
/**
* katja::cmp_repo:
**/
-int cmp_repo(const void *a, const void *b)
+template<class InputIt>
+InputIt cmp_repo(InputIt first, InputIt last, const char *a)
{
- auto repo = static_cast<const Pkgtools *> (a);
-
- return g_strcmp0(repo->name.c_str(), (char *) b);
+ return std::find_if(first, last, [a](std::unique_ptr<Pkgtools>& repo) {
+ return repo->name == a;
+ });
}
}