commit: 87da6d2047647112228af91f55dd2a51db727440 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Tue Jan 27 14:52:38 2026 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Tue Jan 27 14:52:38 2026 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=87da6d20
libq/set: prepare for new API Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> TODO.md | 1 + libq/set.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/TODO.md b/TODO.md index bc386a1a..8d2609e7 100644 --- a/TODO.md +++ b/TODO.md @@ -13,6 +13,7 @@ qlist can query for maintainer email or type, ideally to do qlist -Iv $(portageq --repo gentoo --orphaned) in one step (bug 711466#c3) - handle compressed Packages.gz file in tree +- rename atom\_ctx to atom\_t and similar for all structures like array # tests - add test for qsearch to avoid repetitions like diff --git a/libq/set.h b/libq/set.h index 2175b0ac..dc3c5ac7 100644 --- a/libq/set.h +++ b/libq/set.h @@ -41,4 +41,34 @@ size_t cnt_set(set *q); void free_set(set *q); void clear_set(set *q); +/* 2026 forward API */ +typedef struct set_t set_t; +#define set_new() create_set() +#define set_add(S,K) add_set(K,S) +#define set_add_unique(S,K,U) add_set_unique(K,S,U) +#define set_contains(S,K) (contains_set(K,S) == NULL ? false : true) +#define set_get_key(S,K) contains_set(K,S) +#define set_delete(S,K) del_set(K,S,NULL) +#if 0 +#define set_keys(S) TODO +#endif +#define set_size(S) cnt_set(S) +#define set_clear(S) clear_set(S) +#define set_free(S) free_set(S) + +typedef struct set_t hash_t; +#define hash_new() create_set() +#define hash_add(S,K,V,P) add_set_value(K,V,P,S) +#define hash_get(S,K) get_set(K,S) +#define hash_delete(S,K) del_set(K,S,NULL) +#define hash_delete_chk(S,K,R) del_set(K,S,R) +#if 0 +#define hash_keys(S) TODO +#define hash_values(S) TODO +#endif +#define hash_size(S) cnt_set(S) +#define hash_clear(S) clear_set(S) +#define hash_free(S) free_set(S) + + #endif
