From 5feb95039e42eba628a1106f04890f19f404f30f Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 1 Sep 2022 21:45:31 +0200 Subject: [PATCH] Parse conflicts and replaces of AUR packages retrieved via AUR RPC --- libpkg/parser/aur.h | 2 ++ libpkg/parser/package.cpp | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libpkg/parser/aur.h b/libpkg/parser/aur.h index 9e2629d..26a6ffe 100644 --- a/libpkg/parser/aur.h +++ b/libpkg/parser/aur.h @@ -27,7 +27,9 @@ struct LIBPKG_EXPORT AurRpcResult : public ReflectiveRapidJSON::JsonSerializable std::int64_t FirstSubmitted = 0; std::int64_t LastModified = 0; std::string URLPath; + std::vector Conflicts; std::vector Provides; + std::vector Replaces; std::vector Depends; std::vector MakeDepends; std::vector CheckDepends; diff --git a/libpkg/parser/package.cpp b/libpkg/parser/package.cpp index a1fc75a..9c9c87c 100644 --- a/libpkg/parser/package.cpp +++ b/libpkg/parser/package.cpp @@ -961,9 +961,17 @@ std::vector Package::fromAurRpcJson(const char *jsonData, std::size package->upstreamUrl = std::move(result.URL); package->licenses = std::move(result.License); package->groups = std::move(result.Groups); + package->conflicts.reserve(result.Conflicts.size()); + for (const auto &dep : result.Conflicts) { + package->conflicts.emplace_back(dep.data(), dep.size()); + } package->provides.reserve(result.Provides.size()); - for (const auto &provide : result.Provides) { - package->provides.emplace_back(provide.data(), provide.size()); + for (const auto &dep : result.Provides) { + package->provides.emplace_back(dep.data(), dep.size()); + } + package->replaces.reserve(result.Replaces.size()); + for (const auto &dep : result.Replaces) { + package->replaces.emplace_back(dep.data(), dep.size()); } for (auto &dependencyName : result.Depends) { package->dependencies.emplace_back(dependencyName.data(), dependencyName.size());