From: Michael Tremer Date: Fri, 27 Jun 2025 15:09:32 +0000 (+0000) Subject: solution: Create its own type X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d028ec22abc22a405c1e13a7c763f69a37d10d3;p=pakfire.git solution: Create its own type Signed-off-by: Michael Tremer --- diff --git a/src/cli/lib/terminal.c b/src/cli/lib/terminal.c index 4a856976..c1626b50 100644 --- a/src/cli/lib/terminal.c +++ b/src/cli/lib/terminal.c @@ -193,7 +193,7 @@ ERROR: } static int cli_term_print_problem(pakfire_problem* problem, unsigned int* num_solutions) { - struct pakfire_solution** solutions = NULL; + pakfire_solution** solutions = NULL; // Show what the problem is printf(" * %s\n", pakfire_problem_to_string(problem)); @@ -206,7 +206,7 @@ static int cli_term_print_problem(pakfire_problem* problem, unsigned int* num_so printf(" %s\n", _("Possible solutions:")); // Show all possible solutions - for (struct pakfire_solution** s = solutions; *s; s++) { + for (pakfire_solution** s = solutions; *s; s++) { // Increment the solution counter (*num_solutions)++; @@ -217,7 +217,7 @@ static int cli_term_print_problem(pakfire_problem* problem, unsigned int* num_so // Cleanup if (solutions) { - for (struct pakfire_solution** s = solutions; *s; s++) + for (pakfire_solution** s = solutions; *s; s++) pakfire_solution_unref(*s); free(solutions); @@ -226,10 +226,10 @@ static int cli_term_print_problem(pakfire_problem* problem, unsigned int* num_so return 0; } -static struct pakfire_solution* cli_term_find_solution( +static pakfire_solution* cli_term_find_solution( pakfire_problem** problems, const unsigned int choice) { - struct pakfire_solution* selected_solution = NULL; - struct pakfire_solution** solutions = NULL; + pakfire_solution* selected_solution = NULL; + pakfire_solution** solutions = NULL; // Count solutions unsigned int i = 1; @@ -240,7 +240,7 @@ static struct pakfire_solution* cli_term_find_solution( if (!solutions) continue; - for (struct pakfire_solution** solution = solutions; *solution; solution++) { + for (pakfire_solution** solution = solutions; *solution; solution++) { if (choice == i++) selected_solution = pakfire_solution_ref(*solution); @@ -259,7 +259,7 @@ static struct pakfire_solution* cli_term_find_solution( int cli_term_pick_solution(pakfire_ctx* ctx, struct pakfire* pakfire, void* data, struct pakfire_transaction* transaction) { pakfire_problem** problems = NULL; - struct pakfire_solution* solution = NULL; + pakfire_solution* solution = NULL; unsigned int num_solutions = 0; unsigned int choice = 0; int r = 0; diff --git a/src/pakfire/problem.c b/src/pakfire/problem.c index 2613c1bb..c17b923a 100644 --- a/src/pakfire/problem.c +++ b/src/pakfire/problem.c @@ -264,10 +264,10 @@ struct pakfire_transaction* pakfire_problem_get_transaction(pakfire_problem* pro return pakfire_transaction_ref(problem->transaction); } -struct pakfire_solution** pakfire_problem_get_solutions( +pakfire_solution** pakfire_problem_get_solutions( pakfire_problem* problem) { - struct pakfire_solution** solutions = NULL; - struct pakfire_solution* solution = NULL; + pakfire_solution** solutions = NULL; + pakfire_solution* solution = NULL; unsigned int count = 0; Id id = ID_NULL; int r; @@ -304,7 +304,7 @@ ERROR: ERROR(problem->ctx, "Could not import solutions: %s\n", strerror(r)); if (solutions) { - for (struct pakfire_solution** s = solutions; *s; s++) + for (pakfire_solution** s = solutions; *s; s++) pakfire_solution_unref(*s); free(solutions); diff --git a/src/pakfire/problem.h b/src/pakfire/problem.h index 8e04a7e4..4a3c65ec 100644 --- a/src/pakfire/problem.h +++ b/src/pakfire/problem.h @@ -34,7 +34,7 @@ pakfire_problem* pakfire_problem_unref(pakfire_problem* problem); const char* pakfire_problem_to_string(pakfire_problem* problem); -struct pakfire_solution** pakfire_problem_get_solutions( +pakfire_solution** pakfire_problem_get_solutions( pakfire_problem* problem); int pakfire_problem_create(pakfire_problem** problem, struct pakfire* pakfire, diff --git a/src/pakfire/solution.c b/src/pakfire/solution.c index 9593b033..aa1f3098 100644 --- a/src/pakfire/solution.c +++ b/src/pakfire/solution.c @@ -42,9 +42,9 @@ struct pakfire_solution { char* string; }; -int pakfire_solution_create(struct pakfire_solution** solution, +int pakfire_solution_create(pakfire_solution** solution, struct pakfire* pakfire, pakfire_problem* problem, Id id) { - struct pakfire_solution* s = calloc(1, sizeof(*s)); + pakfire_solution* s = calloc(1, sizeof(*s)); if (!s) return -errno; @@ -64,13 +64,13 @@ int pakfire_solution_create(struct pakfire_solution** solution, return 0; } -struct pakfire_solution* pakfire_solution_ref(struct pakfire_solution* solution) { +pakfire_solution* pakfire_solution_ref(pakfire_solution* solution) { solution->nrefs++; return solution; } -static void pakfire_solution_free(struct pakfire_solution* solution) { +static void pakfire_solution_free(pakfire_solution* solution) { pakfire_problem_unref(solution->problem); if (solution->string) @@ -80,7 +80,7 @@ static void pakfire_solution_free(struct pakfire_solution* solution) { free(solution); } -struct pakfire_solution* pakfire_solution_unref(struct pakfire_solution* solution) { +pakfire_solution* pakfire_solution_unref(pakfire_solution* solution) { if (!solution) return NULL; @@ -91,15 +91,15 @@ struct pakfire_solution* pakfire_solution_unref(struct pakfire_solution* solutio return NULL; } -pakfire_problem* pakfire_solution_get_problem(struct pakfire_solution* solution) { +pakfire_problem* pakfire_solution_get_problem(pakfire_solution* solution) { return pakfire_problem_ref(solution->problem); } -Id pakfire_solution_get_id(struct pakfire_solution* solution) { +Id pakfire_solution_get_id(pakfire_solution* solution) { return solution->id; } -static char* pakfire_solution_make_string(struct pakfire_solution* solution) { +static char* pakfire_solution_make_string(pakfire_solution* solution) { struct pakfire_transaction* transaction = pakfire_problem_get_transaction(solution->problem); Solver* solver = pakfire_transaction_get_solver(transaction); Pool* pool = solver->pool; @@ -208,7 +208,7 @@ ERROR: return s; } -const char* pakfire_solution_to_string(struct pakfire_solution* solution) { +const char* pakfire_solution_to_string(pakfire_solution* solution) { if (!solution->string) solution->string = pakfire_solution_make_string(solution); diff --git a/src/pakfire/solution.h b/src/pakfire/solution.h index 5cbfd7b3..1c5b86e2 100644 --- a/src/pakfire/solution.h +++ b/src/pakfire/solution.h @@ -24,19 +24,19 @@ // libsolv #include -struct pakfire_solution; +typedef struct pakfire_solution pakfire_solution; #include #include -struct pakfire_solution* pakfire_solution_ref(struct pakfire_solution* solution); -struct pakfire_solution* pakfire_solution_unref(struct pakfire_solution* solution); +pakfire_solution* pakfire_solution_ref(pakfire_solution* solution); +pakfire_solution* pakfire_solution_unref(pakfire_solution* solution); -const char* pakfire_solution_to_string(struct pakfire_solution* solution); +const char* pakfire_solution_to_string(pakfire_solution* solution); -int pakfire_solution_create(struct pakfire_solution** solution, struct pakfire* pakfire, +int pakfire_solution_create(pakfire_solution** solution, struct pakfire* pakfire, pakfire_problem* problem, Id id); -pakfire_problem* pakfire_solution_get_problem(struct pakfire_solution* solution); -Id pakfire_solution_get_id(struct pakfire_solution* solution); +pakfire_problem* pakfire_solution_get_problem(pakfire_solution* solution); +Id pakfire_solution_get_id(pakfire_solution* solution); #endif /* PAKFIRE_SOLUTION_H */ diff --git a/src/pakfire/transaction.c b/src/pakfire/transaction.c index ea79d719..1b251ef1 100644 --- a/src/pakfire/transaction.c +++ b/src/pakfire/transaction.c @@ -487,11 +487,11 @@ ERROR: } static int pakfire_transaction_append_solutions( - struct pakfire_transaction* transaction, char** buffer, struct pakfire_solution** solutions) { + struct pakfire_transaction* transaction, char** buffer, pakfire_solution** solutions) { const char* s = NULL; int r; - for (struct pakfire_solution** solution = solutions; *solution; solution++) { + for (pakfire_solution** solution = solutions; *solution; solution++) { s = pakfire_solution_to_string(*solution); if (!s) return -errno; @@ -507,7 +507,7 @@ static int pakfire_transaction_append_solutions( static int pakfire_transaction_append_problems( struct pakfire_transaction* transaction, char** buffer, pakfire_problem** problems, int flags) { - struct pakfire_solution** solutions = NULL; + pakfire_solution** solutions = NULL; const char* s = NULL; int r; @@ -530,7 +530,7 @@ static int pakfire_transaction_append_problems( r = pakfire_transaction_append_solutions(transaction, buffer, solutions); // Cleanup - for (struct pakfire_solution** solution = solutions; *solution; solution++) + for (pakfire_solution** solution = solutions; *solution; solution++) pakfire_solution_unref(*solution); free(solutions); @@ -870,7 +870,7 @@ int pakfire_transaction_request_package(struct pakfire_transaction* transaction, } int pakfire_transaction_take_solution(struct pakfire_transaction* transaction, - struct pakfire_solution* solution) { + pakfire_solution* solution) { pakfire_problem* problem = pakfire_solution_get_problem(solution); // Fetch IDs diff --git a/src/pakfire/transaction.h b/src/pakfire/transaction.h index fa5db0f0..8af9a6ab 100644 --- a/src/pakfire/transaction.h +++ b/src/pakfire/transaction.h @@ -74,7 +74,7 @@ int pakfire_transaction_request_package(struct pakfire_transaction* transaction, pakfire_problem** pakfire_transaction_get_problems(struct pakfire_transaction* transaction); int pakfire_transaction_take_solution( - struct pakfire_transaction* transaction, struct pakfire_solution* solution); + struct pakfire_transaction* transaction, pakfire_solution* solution); size_t pakfire_transaction_count(struct pakfire_transaction* transaction); char* pakfire_transaction_dump(struct pakfire_transaction* transaction, size_t width); diff --git a/src/python/problem.c b/src/python/problem.c index 96edae52..d2d69047 100644 --- a/src/python/problem.c +++ b/src/python/problem.c @@ -71,7 +71,7 @@ static PyObject* Problem_string(ProblemObject* self) { } static PyObject* Problem_get_solutions(ProblemObject* self) { - struct pakfire_solution** solutions = NULL; + pakfire_solution** solutions = NULL; PyObject* s = NULL; int r; @@ -83,7 +83,7 @@ static PyObject* Problem_get_solutions(ProblemObject* self) { solutions = pakfire_problem_get_solutions(self->problem); if (solutions) { - for (struct pakfire_solution** solution = solutions; *solution; solution++) { + for (pakfire_solution** solution = solutions; *solution; solution++) { s = new_solution(*solution); if (!s) goto ERROR; @@ -96,7 +96,7 @@ static PyObject* Problem_get_solutions(ProblemObject* self) { } // Cleanup - for (struct pakfire_solution** solution = solutions; *solution; solution++) + for (pakfire_solution** solution = solutions; *solution; solution++) pakfire_solution_unref(*solution); free(solutions); } @@ -105,7 +105,7 @@ static PyObject* Problem_get_solutions(ProblemObject* self) { ERROR: if (solutions) { - for (struct pakfire_solution** solution = solutions; *solution; solution++) + for (pakfire_solution** solution = solutions; *solution; solution++) pakfire_solution_unref(*solution); free(solutions); } diff --git a/src/python/solution.c b/src/python/solution.c index 3c09887f..5f1c31e6 100644 --- a/src/python/solution.c +++ b/src/python/solution.c @@ -25,7 +25,7 @@ #include "solution.h" -static SolutionObject* Solution_new_core(PyTypeObject* type, struct pakfire_solution* solution) { +static SolutionObject* Solution_new_core(PyTypeObject* type, pakfire_solution* solution) { SolutionObject* self = (SolutionObject *)type->tp_alloc(type, 0); if (self) { self->solution = solution; @@ -34,7 +34,7 @@ static SolutionObject* Solution_new_core(PyTypeObject* type, struct pakfire_solu return self; } -PyObject* new_solution(struct pakfire_solution* solution) { +PyObject* new_solution(pakfire_solution* solution) { SolutionObject* s = Solution_new_core(&SolutionType, solution); return (PyObject*)s; diff --git a/src/python/solution.h b/src/python/solution.h index cd5bb3e0..4f68afa7 100644 --- a/src/python/solution.h +++ b/src/python/solution.h @@ -27,11 +27,11 @@ typedef struct { PyObject_HEAD - struct pakfire_solution* solution; + pakfire_solution* solution; } SolutionObject; extern PyTypeObject SolutionType; -PyObject* new_solution(struct pakfire_solution* solution); +PyObject* new_solution(pakfire_solution* solution); #endif /* PYTHON_PAKFIRE_SOLUTION_H */