summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2008-07-01 09:22:25 +0100
committerRichard Hughes <richard@hughsie.com>2008-07-01 09:22:25 +0100
commita6a8f407fb539a884a132f3289919aeb4a8d78df (patch)
treea6accbfdef755d24f248e73231fdc67ee9cb4393
parent27e3b5098d6c01d978cb5d530ea98f5f4069b25d (diff)
convert the NULL sentinel to RAZOR_DETAIL_LAST
-rw-r--r--librazor/iterator.c6
-rw-r--r--librazor/razor.c14
-rw-r--r--librazor/razor.h16
-rw-r--r--librazor/transaction.c24
-rw-r--r--src/main.c40
-rw-r--r--src/rpm.c17
-rw-r--r--src/test-driver.c5
7 files changed, 74 insertions, 48 deletions
diff --git a/librazor/iterator.c b/librazor/iterator.c
index 6b973b0..4908d53 100644
--- a/librazor/iterator.c
+++ b/librazor/iterator.c
@@ -114,7 +114,9 @@ razor_package_iterator_create_for_file(struct razor_set *set,
* Gets the next iteratr along with any vararg data.
* The vararg must be terminated with NULL.
*
- * Example: razor_package_iterator_next (pi, package, RAZOR_DETAIL_NAME, &name, 0);
+ * Example: razor_package_iterator_next (pi, package,
+ * RAZOR_DETAIL_NAME, &name,
+ * RAZOR_DETAIL_LAST);
**/
RAZOR_EXPORT int
razor_package_iterator_next(struct razor_package_iterator *pi,
@@ -273,7 +275,7 @@ razor_package_query_add_iterator(struct razor_package_query *pq,
assert (pi != NULL);
packages = pq->set->packages.data;
- while (razor_package_iterator_next(pi, &p, NULL)) {
+ while (razor_package_iterator_next(pi, &p, RAZOR_DETAIL_LAST)) {
pq->count += pq->vector[p - packages] ^ 1;
pq->vector[p - packages] = 1;
}
diff --git a/librazor/razor.c b/librazor/razor.c
index d6f8331..7d18205 100644
--- a/librazor/razor.c
+++ b/librazor/razor.c
@@ -442,7 +442,7 @@ razor_package_get_details_varg(struct razor_set *set,
for (i = 0;; i += 2) {
type = va_arg(args, enum razor_detail_type);
- if (type == 0)
+ if (type == RAZOR_DETAIL_LAST)
break;
data = va_arg(args, const char **);
*data = razor_package_get_details_type(set, package, type);
@@ -458,7 +458,9 @@ razor_package_get_details_varg(struct razor_set *set,
* Gets details about a package using a varg interface
* The vararg must be terminated with %NULL.
*
- * Example: razor_package_get_details (set, package, RAZOR_DETAIL_URL, &url, 0);
+ * Example: razor_package_get_details (set, package,
+ * RAZOR_DETAIL_URL, &url,
+ * RAZOR_DETAIL_LAST);
**/
RAZOR_EXPORT void
razor_package_get_details(struct razor_set *set, struct razor_package *package, ...)
@@ -696,12 +698,12 @@ razor_set_diff(struct razor_set *set, struct razor_set *upstream,
RAZOR_DETAIL_NAME, &name1,
RAZOR_DETAIL_VERSION, &version1,
RAZOR_DETAIL_ARCH, &arch1,
- NULL);
+ RAZOR_DETAIL_LAST);
razor_package_iterator_next(pi2, &p2,
RAZOR_DETAIL_NAME, &name2,
RAZOR_DETAIL_VERSION, &version2,
RAZOR_DETAIL_ARCH, &arch2,
- NULL);
+ RAZOR_DETAIL_LAST);
while (p1 || p2) {
if (p1 && p2) {
@@ -724,13 +726,13 @@ razor_set_diff(struct razor_set *set, struct razor_set *upstream,
RAZOR_DETAIL_NAME, &name1,
RAZOR_DETAIL_VERSION, &version1,
RAZOR_DETAIL_ARCH, &arch1,
- NULL);
+ RAZOR_DETAIL_LAST);
if (p2 != NULL && res >= 0)
razor_package_iterator_next(pi2, &p2,
RAZOR_DETAIL_NAME, &name2,
RAZOR_DETAIL_VERSION, &version2,
RAZOR_DETAIL_ARCH, &arch2,
- NULL);
+ RAZOR_DETAIL_LAST);
}
razor_package_iterator_destroy(pi1);
diff --git a/librazor/razor.h b/librazor/razor.h
index 096aa31..6cf1d8f 100644
--- a/librazor/razor.h
+++ b/librazor/razor.h
@@ -22,13 +22,6 @@
#include <stdint.h>
-/* GCC sentinel */
-#if defined(__GNUC__) && __GNUC__ >= 4
-#define RAZOR_SENTINEL __attribute__ ((__sentinel__(0)));
-#else
-#define RAZOR_SENTINEL
-#endif
-
enum razor_repo_file_type {
RAZOR_REPO_FILE_MAIN,
RAZOR_REPO_FILE_DETAILS,
@@ -36,7 +29,8 @@ enum razor_repo_file_type {
};
enum razor_detail_type {
- RAZOR_DETAIL_NAME = 1, /* NULL (0 on 32 bit) is the sentinel */
+ RAZOR_DETAIL_LAST = 0, /* the sentinel */
+ RAZOR_DETAIL_NAME,
RAZOR_DETAIL_VERSION,
RAZOR_DETAIL_ARCH,
RAZOR_DETAIL_SUMMARY,
@@ -102,8 +96,7 @@ razor_set_get_package(struct razor_set *set, const char *package);
void
razor_package_get_details(struct razor_set *set,
- struct razor_package *package, ...)
- RAZOR_SENTINEL;
+ struct razor_package *package, ...);
/**
@@ -153,8 +146,7 @@ razor_package_iterator_create_for_file(struct razor_set *set,
const char *filename);
int razor_package_iterator_next(struct razor_package_iterator *pi,
- struct razor_package **package, ...)
- RAZOR_SENTINEL;
+ struct razor_package **package, ...);
void razor_package_iterator_destroy(struct razor_package_iterator *pi);
struct razor_package_query *
diff --git a/librazor/transaction.c b/librazor/transaction.c
index 1e91cae..0abd6e1 100644
--- a/librazor/transaction.c
+++ b/librazor/transaction.c
@@ -318,7 +318,8 @@ remove_matching_providers(struct razor_transaction *trans,
razor_package_iterator_init_for_property(&pkg_iter, set, p);
while (razor_package_iterator_next(&pkg_iter, &pkg,
RAZOR_DETAIL_NAME, &n,
- RAZOR_DETAIL_VERSION, &v, NULL)) {
+ RAZOR_DETAIL_VERSION, &v,
+ RAZOR_DETAIL_LAST)) {
fprintf(stderr, "removing %s-%s\n", n, v);
razor_transaction_remove_package(trans, pkg);
}
@@ -364,7 +365,8 @@ flag_matching_providers(struct razor_transaction *trans,
razor_package_iterator_init_for_property(&pkg_iter, set, p);
while (razor_package_iterator_next(&pkg_iter, &pkg,
RAZOR_DETAIL_NAME, &name,
- RAZOR_DETAIL_VERSION, &version, NULL)) {
+ RAZOR_DETAIL_VERSION, &version,
+ RAZOR_DETAIL_LAST)) {
fprintf(stderr, "flagging %s-%s for providing %s matching %s %s\n",
name, version,
@@ -526,7 +528,8 @@ update_unsatisfied_packages(struct razor_transaction *trans)
trans->system.set,
sp);
while (razor_package_iterator_next(&pkg_iter, &pkg,
- RAZOR_DETAIL_NAME, &name, NULL)) {
+ RAZOR_DETAIL_NAME, &name,
+ RAZOR_DETAIL_LAST)) {
fprintf(stderr, "updating %s because %s %s %s "
"isn't satisfied\n",
name, spi.pool + sp->name,
@@ -578,7 +581,8 @@ update_conflicted_packages(struct razor_transaction *trans)
sp);
while (razor_package_iterator_next(&pkg_iter, &pkg,
RAZOR_DETAIL_NAME, &name,
- RAZOR_DETAIL_VERSION, &version, NULL)) {
+ RAZOR_DETAIL_VERSION, &version,
+ RAZOR_DETAIL_LAST)) {
fprintf(stderr, "updating %s %s because it "
"conflicts with %s\n",
name, version, spi.pool + sp->name);
@@ -668,7 +672,8 @@ flush_scheduled_system_updates(struct razor_transaction *trans)
while (razor_package_iterator_next(pi, &p,
RAZOR_DETAIL_NAME, &name,
- RAZOR_DETAIL_VERSION, &version, NULL)) {
+ RAZOR_DETAIL_VERSION, &version,
+ RAZOR_DETAIL_LAST)) {
if (!(trans->system.packages[p - spkgs] & TRANS_PACKAGE_UPDATE))
continue;
@@ -705,7 +710,8 @@ flush_scheduled_upstream_updates(struct razor_transaction *trans)
while (razor_package_iterator_next(pi, &p,
RAZOR_DETAIL_NAME, &name,
- RAZOR_DETAIL_VERSION, &version, NULL)) {
+ RAZOR_DETAIL_VERSION, &version,
+ RAZOR_DETAIL_LAST)) {
if (!(trans->upstream.packages[p - upkgs] & TRANS_PACKAGE_UPDATE))
continue;
@@ -754,7 +760,8 @@ describe_unsatisfied(struct razor_set *set, struct razor_property *rp)
while (razor_package_iterator_next(&pi, &pkg,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL))
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST))
fprintf(stderr, "%s is needed by %s-%s.%s\n",
&pool[rp->name],
name, version, arch);
@@ -763,7 +770,8 @@ describe_unsatisfied(struct razor_set *set, struct razor_property *rp)
while (razor_package_iterator_next(&pi, &pkg,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL))
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST))
fprintf(stderr, "%s %s %s is needed by %s-%s.%s\n",
&pool[rp->name],
razor_property_relation_to_string(rp),
diff --git a/src/main.c b/src/main.c
index 98b4ff1..71ed6fe 100644
--- a/src/main.c
+++ b/src/main.c
@@ -61,7 +61,9 @@ create_iterator_from_argv(struct razor_set *set, int argc, const char *argv[])
iter = razor_package_iterator_create(set);
pattern = argv[i];
count = 0;
- while (razor_package_iterator_next(iter, &package, RAZOR_DETAIL_NAME, &name, NULL)) {
+ while (razor_package_iterator_next(iter, &package,
+ RAZOR_DETAIL_NAME, &name,
+ RAZOR_DETAIL_LAST)) {
if (fnmatch(pattern, name, 0) != 0)
continue;
@@ -89,7 +91,8 @@ list_packages(struct razor_package_iterator *iter, uint32_t flags)
while (razor_package_iterator_next(iter, &package,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL)) {
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST)) {
if (flags & LIST_PACKAGES_ONLY_NAMES)
printf("%s\n", name);
else
@@ -167,7 +170,10 @@ list_properties(int argc, const char *argv[], uint32_t type)
set = razor_set_open(repo_filename);
pi = create_iterator_from_argv(set, argc, argv);
while (razor_package_iterator_next(pi, &package,
- &name, &version, &arch))
+ RAZOR_DETAIL_NAME, &name,
+ RAZOR_DETAIL_VERSION, &version,
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST))
list_package_properties(set, package, type);
razor_package_iterator_destroy(pi);
razor_set_destroy(set);
@@ -253,7 +259,10 @@ command_list_package_files(int argc, const char *argv[])
pi = create_iterator_from_argv(set, argc, argv);
while (razor_package_iterator_next(pi, &package,
- &name, &version, &arch))
+ RAZOR_DETAIL_NAME, &name,
+ RAZOR_DETAIL_VERSION, &version,
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST))
razor_set_list_package_files(set, package);
razor_package_iterator_destroy(pi);
@@ -445,7 +454,8 @@ mark_packages_for_update(struct razor_transaction *trans,
pi = razor_package_iterator_create(set);
while (razor_package_iterator_next(pi, &package,
- RAZOR_DETAIL_NAME, &name, NULL)) {
+ RAZOR_DETAIL_NAME, &name,
+ RAZOR_DETAIL_LAST)) {
if (pattern && fnmatch(pattern, name, 0) == 0) {
razor_transaction_update_package(trans, package);
matches++;
@@ -466,7 +476,9 @@ mark_packages_for_removal(struct razor_transaction *trans,
int matches = 0;
pi = razor_package_iterator_create(set);
- while (razor_package_iterator_next(pi, &package, RAZOR_DETAIL_NAME, &name, NULL)) {
+ while (razor_package_iterator_next(pi, &package,
+ RAZOR_DETAIL_NAME, &name,
+ RAZOR_DETAIL_LAST)) {
if (pattern && fnmatch(pattern, name, 0) == 0) {
razor_transaction_remove_package(trans, package);
matches++;
@@ -676,7 +688,8 @@ download_packages(struct razor_set *system, struct razor_set *next)
while (razor_package_iterator_next(pi, &package,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL)) {
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST)) {
snprintf(url, sizeof url,
"%s/Packages/%s",
yum_url, rpm_filename(name, version, arch));
@@ -708,7 +721,8 @@ install_packages(struct razor_set *system, struct razor_set *next)
while (razor_package_iterator_next(pi, &package,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL)) {
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST)) {
printf("install %s-%s\n", name, version);
snprintf(file, sizeof file,
@@ -816,7 +830,8 @@ command_download(int argc, const char *argv[])
while (razor_package_iterator_next(pi, &package,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL)) {
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST)) {
if (pattern && fnmatch(pattern, name, 0) != 0)
continue;
@@ -859,7 +874,8 @@ command_info(int argc, const char *argv[])
while (razor_package_iterator_next(pi, &package,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL)) {
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST)) {
if (pattern && fnmatch(pattern, name, 0) != 0)
continue;
@@ -868,7 +884,7 @@ command_info(int argc, const char *argv[])
RAZOR_DETAIL_DESCRIPTION, &description,
RAZOR_DETAIL_URL, &url,
RAZOR_DETAIL_LICENSE, &license,
- NULL);
+ RAZOR_DETAIL_LAST);
printf ("Name: %s\n", name);
printf ("Arch: %s\n", arch);
@@ -920,7 +936,7 @@ command_search(int argc, const char *argv[])
RAZOR_DETAIL_DESCRIPTION, &description,
RAZOR_DETAIL_URL, &url,
RAZOR_DETAIL_LICENSE, &license,
- NULL)) {
+ RAZOR_DETAIL_LAST)) {
if (!fnmatch(pattern, name, FNM_CASEFOLD) ||
!fnmatch(pattern, url, FNM_CASEFOLD) ||
!fnmatch(pattern, summary, FNM_CASEFOLD) ||
diff --git a/src/rpm.c b/src/rpm.c
index bd31434..add25c8 100644
--- a/src/rpm.c
+++ b/src/rpm.c
@@ -313,7 +313,8 @@ add_command_line_packages(struct razor_set *set,
pi = razor_package_iterator_create(set);
while (razor_package_iterator_next(pi, &package,
- RAZOR_DETAIL_NAME, &name, NULL)) {
+ RAZOR_DETAIL_NAME, &name,
+ RAZOR_DETAIL_LAST)) {
while (cmp = strcmp(argv[i], name), cmp < 0 && i < argc) {
fprintf(stderr, "error: package %s is not installed\n",
argv[i]);
@@ -422,7 +423,7 @@ print_package_info(struct razor_set *set, struct razor_package *package,
RAZOR_DETAIL_DESCRIPTION, &description,
RAZOR_DETAIL_URL, &url,
RAZOR_DETAIL_LICENSE, &license,
- NULL);
+ RAZOR_DETAIL_LAST);
printf("Name: %s\n", name);
printf("Arch: %s\n", arch);
@@ -494,7 +495,8 @@ command_query(int argc, const char *argv[])
while (razor_package_iterator_next(pi, &package,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL)) {
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST)) {
if (option_conflicts)
print_package_properties(set, package,
RAZOR_PROPERTY_CONFLICTS);
@@ -548,7 +550,8 @@ command_verify(int argc, const char *argv[])
while (razor_package_iterator_next(pi, &package,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_VERSION, &version,
- RAZOR_DETAIL_ARCH, &arch, NULL)) {
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST)) {
printf("verify %s-%s.%s - not implemented\n",
name, version, arch);
}
@@ -593,7 +596,7 @@ command_erase(int argc, const char *argv[])
add_command_line_packages(set, query, argc, argv);
pi = razor_package_query_finish(query);
- while (razor_package_iterator_next(pi, &package, NULL))
+ while (razor_package_iterator_next(pi, &package, RAZOR_DETAIL_LAST))
razor_transaction_remove_package(trans, package);
razor_package_iterator_destroy(pi);
@@ -635,7 +638,7 @@ command_install(int argc, const char *argv[])
trans = razor_transaction_create(set, upstream);
pi = razor_package_iterator_create(upstream);
- while (razor_package_iterator_next(pi, &package, NULL))
+ while (razor_package_iterator_next(pi, &package, RAZOR_DETAIL_LAST))
razor_transaction_install_package(trans, package);
razor_package_iterator_destroy(pi);
@@ -677,7 +680,7 @@ command_update(int argc, const char *argv[])
trans = razor_transaction_create(set, upstream);
pi = razor_package_iterator_create(upstream);
- while (razor_package_iterator_next(pi, &package, NULL))
+ while (razor_package_iterator_next(pi, &package, RAZOR_DETAIL_LAST))
razor_transaction_update_package(trans, package);
razor_package_iterator_destroy(pi);
diff --git a/src/test-driver.c b/src/test-driver.c
index bd7aa17..99b4d00 100644
--- a/src/test-driver.c
+++ b/src/test-driver.c
@@ -293,7 +293,10 @@ get_package(struct razor_set *set, const char *package)
const char *name, *version, *arch;
pi = razor_package_iterator_create(set);
- while (razor_package_iterator_next(pi, &p, &name, &version, &arch)) {
+ while (razor_package_iterator_next(pi, &p, RAZOR_DETAIL_NAME, &name,
+ RAZOR_DETAIL_VERSION, &version,
+ RAZOR_DETAIL_ARCH, &arch,
+ RAZOR_DETAIL_LAST)) {
if (strcmp(package, name) == 0)
break;
}