1.1 --- a/librazor/iterator.c Mon Jun 30 13:28:59 2008 -0400
1.2 +++ b/librazor/iterator.c Tue Jul 01 09:22:25 2008 +0100
1.3 @@ -114,7 +114,9 @@
1.4 * Gets the next iteratr along with any vararg data.
1.5 * The vararg must be terminated with NULL.
1.6 *
1.7 - * Example: razor_package_iterator_next (pi, package, RAZOR_DETAIL_NAME, &name, 0);
1.8 + * Example: razor_package_iterator_next (pi, package,
1.9 + * RAZOR_DETAIL_NAME, &name,
1.10 + * RAZOR_DETAIL_LAST);
1.11 **/
1.12 RAZOR_EXPORT int
1.13 razor_package_iterator_next(struct razor_package_iterator *pi,
1.14 @@ -273,7 +275,7 @@
1.15 assert (pi != NULL);
1.16
1.17 packages = pq->set->packages.data;
1.18 - while (razor_package_iterator_next(pi, &p, NULL)) {
1.19 + while (razor_package_iterator_next(pi, &p, RAZOR_DETAIL_LAST)) {
1.20 pq->count += pq->vector[p - packages] ^ 1;
1.21 pq->vector[p - packages] = 1;
1.22 }
2.1 --- a/librazor/razor.c Mon Jun 30 13:28:59 2008 -0400
2.2 +++ b/librazor/razor.c Tue Jul 01 09:22:25 2008 +0100
2.3 @@ -442,7 +442,7 @@
2.4
2.5 for (i = 0;; i += 2) {
2.6 type = va_arg(args, enum razor_detail_type);
2.7 - if (type == 0)
2.8 + if (type == RAZOR_DETAIL_LAST)
2.9 break;
2.10 data = va_arg(args, const char **);
2.11 *data = razor_package_get_details_type(set, package, type);
2.12 @@ -458,7 +458,9 @@
2.13 * Gets details about a package using a varg interface
2.14 * The vararg must be terminated with %NULL.
2.15 *
2.16 - * Example: razor_package_get_details (set, package, RAZOR_DETAIL_URL, &url, 0);
2.17 + * Example: razor_package_get_details (set, package,
2.18 + * RAZOR_DETAIL_URL, &url,
2.19 + * RAZOR_DETAIL_LAST);
2.20 **/
2.21 RAZOR_EXPORT void
2.22 razor_package_get_details(struct razor_set *set, struct razor_package *package, ...)
2.23 @@ -696,12 +698,12 @@
2.24 RAZOR_DETAIL_NAME, &name1,
2.25 RAZOR_DETAIL_VERSION, &version1,
2.26 RAZOR_DETAIL_ARCH, &arch1,
2.27 - NULL);
2.28 + RAZOR_DETAIL_LAST);
2.29 razor_package_iterator_next(pi2, &p2,
2.30 RAZOR_DETAIL_NAME, &name2,
2.31 RAZOR_DETAIL_VERSION, &version2,
2.32 RAZOR_DETAIL_ARCH, &arch2,
2.33 - NULL);
2.34 + RAZOR_DETAIL_LAST);
2.35
2.36 while (p1 || p2) {
2.37 if (p1 && p2) {
2.38 @@ -724,13 +726,13 @@
2.39 RAZOR_DETAIL_NAME, &name1,
2.40 RAZOR_DETAIL_VERSION, &version1,
2.41 RAZOR_DETAIL_ARCH, &arch1,
2.42 - NULL);
2.43 + RAZOR_DETAIL_LAST);
2.44 if (p2 != NULL && res >= 0)
2.45 razor_package_iterator_next(pi2, &p2,
2.46 RAZOR_DETAIL_NAME, &name2,
2.47 RAZOR_DETAIL_VERSION, &version2,
2.48 RAZOR_DETAIL_ARCH, &arch2,
2.49 - NULL);
2.50 + RAZOR_DETAIL_LAST);
2.51 }
2.52
2.53 razor_package_iterator_destroy(pi1);
3.1 --- a/librazor/razor.h Mon Jun 30 13:28:59 2008 -0400
3.2 +++ b/librazor/razor.h Tue Jul 01 09:22:25 2008 +0100
3.3 @@ -22,13 +22,6 @@
3.4
3.5 #include <stdint.h>
3.6
3.7 -/* GCC sentinel */
3.8 -#if defined(__GNUC__) && __GNUC__ >= 4
3.9 -#define RAZOR_SENTINEL __attribute__ ((__sentinel__(0)));
3.10 -#else
3.11 -#define RAZOR_SENTINEL
3.12 -#endif
3.13 -
3.14 enum razor_repo_file_type {
3.15 RAZOR_REPO_FILE_MAIN,
3.16 RAZOR_REPO_FILE_DETAILS,
3.17 @@ -36,7 +29,8 @@
3.18 };
3.19
3.20 enum razor_detail_type {
3.21 - RAZOR_DETAIL_NAME = 1, /* NULL (0 on 32 bit) is the sentinel */
3.22 + RAZOR_DETAIL_LAST = 0, /* the sentinel */
3.23 + RAZOR_DETAIL_NAME,
3.24 RAZOR_DETAIL_VERSION,
3.25 RAZOR_DETAIL_ARCH,
3.26 RAZOR_DETAIL_SUMMARY,
3.27 @@ -102,8 +96,7 @@
3.28
3.29 void
3.30 razor_package_get_details(struct razor_set *set,
3.31 - struct razor_package *package, ...)
3.32 - RAZOR_SENTINEL;
3.33 + struct razor_package *package, ...);
3.34
3.35
3.36 /**
3.37 @@ -153,8 +146,7 @@
3.38 const char *filename);
3.39
3.40 int razor_package_iterator_next(struct razor_package_iterator *pi,
3.41 - struct razor_package **package, ...)
3.42 - RAZOR_SENTINEL;
3.43 + struct razor_package **package, ...);
3.44 void razor_package_iterator_destroy(struct razor_package_iterator *pi);
3.45
3.46 struct razor_package_query *
4.1 --- a/librazor/transaction.c Mon Jun 30 13:28:59 2008 -0400
4.2 +++ b/librazor/transaction.c Tue Jul 01 09:22:25 2008 +0100
4.3 @@ -318,7 +318,8 @@
4.4 razor_package_iterator_init_for_property(&pkg_iter, set, p);
4.5 while (razor_package_iterator_next(&pkg_iter, &pkg,
4.6 RAZOR_DETAIL_NAME, &n,
4.7 - RAZOR_DETAIL_VERSION, &v, NULL)) {
4.8 + RAZOR_DETAIL_VERSION, &v,
4.9 + RAZOR_DETAIL_LAST)) {
4.10 fprintf(stderr, "removing %s-%s\n", n, v);
4.11 razor_transaction_remove_package(trans, pkg);
4.12 }
4.13 @@ -364,7 +365,8 @@
4.14 razor_package_iterator_init_for_property(&pkg_iter, set, p);
4.15 while (razor_package_iterator_next(&pkg_iter, &pkg,
4.16 RAZOR_DETAIL_NAME, &name,
4.17 - RAZOR_DETAIL_VERSION, &version, NULL)) {
4.18 + RAZOR_DETAIL_VERSION, &version,
4.19 + RAZOR_DETAIL_LAST)) {
4.20
4.21 fprintf(stderr, "flagging %s-%s for providing %s matching %s %s\n",
4.22 name, version,
4.23 @@ -526,7 +528,8 @@
4.24 trans->system.set,
4.25 sp);
4.26 while (razor_package_iterator_next(&pkg_iter, &pkg,
4.27 - RAZOR_DETAIL_NAME, &name, NULL)) {
4.28 + RAZOR_DETAIL_NAME, &name,
4.29 + RAZOR_DETAIL_LAST)) {
4.30 fprintf(stderr, "updating %s because %s %s %s "
4.31 "isn't satisfied\n",
4.32 name, spi.pool + sp->name,
4.33 @@ -578,7 +581,8 @@
4.34 sp);
4.35 while (razor_package_iterator_next(&pkg_iter, &pkg,
4.36 RAZOR_DETAIL_NAME, &name,
4.37 - RAZOR_DETAIL_VERSION, &version, NULL)) {
4.38 + RAZOR_DETAIL_VERSION, &version,
4.39 + RAZOR_DETAIL_LAST)) {
4.40 fprintf(stderr, "updating %s %s because it "
4.41 "conflicts with %s\n",
4.42 name, version, spi.pool + sp->name);
4.43 @@ -668,7 +672,8 @@
4.44
4.45 while (razor_package_iterator_next(pi, &p,
4.46 RAZOR_DETAIL_NAME, &name,
4.47 - RAZOR_DETAIL_VERSION, &version, NULL)) {
4.48 + RAZOR_DETAIL_VERSION, &version,
4.49 + RAZOR_DETAIL_LAST)) {
4.50 if (!(trans->system.packages[p - spkgs] & TRANS_PACKAGE_UPDATE))
4.51 continue;
4.52
4.53 @@ -705,7 +710,8 @@
4.54
4.55 while (razor_package_iterator_next(pi, &p,
4.56 RAZOR_DETAIL_NAME, &name,
4.57 - RAZOR_DETAIL_VERSION, &version, NULL)) {
4.58 + RAZOR_DETAIL_VERSION, &version,
4.59 + RAZOR_DETAIL_LAST)) {
4.60 if (!(trans->upstream.packages[p - upkgs] & TRANS_PACKAGE_UPDATE))
4.61 continue;
4.62
4.63 @@ -754,7 +760,8 @@
4.64 while (razor_package_iterator_next(&pi, &pkg,
4.65 RAZOR_DETAIL_NAME, &name,
4.66 RAZOR_DETAIL_VERSION, &version,
4.67 - RAZOR_DETAIL_ARCH, &arch, NULL))
4.68 + RAZOR_DETAIL_ARCH, &arch,
4.69 + RAZOR_DETAIL_LAST))
4.70 fprintf(stderr, "%s is needed by %s-%s.%s\n",
4.71 &pool[rp->name],
4.72 name, version, arch);
4.73 @@ -763,7 +770,8 @@
4.74 while (razor_package_iterator_next(&pi, &pkg,
4.75 RAZOR_DETAIL_NAME, &name,
4.76 RAZOR_DETAIL_VERSION, &version,
4.77 - RAZOR_DETAIL_ARCH, &arch, NULL))
4.78 + RAZOR_DETAIL_ARCH, &arch,
4.79 + RAZOR_DETAIL_LAST))
4.80 fprintf(stderr, "%s %s %s is needed by %s-%s.%s\n",
4.81 &pool[rp->name],
4.82 razor_property_relation_to_string(rp),
5.1 --- a/src/main.c Mon Jun 30 13:28:59 2008 -0400
5.2 +++ b/src/main.c Tue Jul 01 09:22:25 2008 +0100
5.3 @@ -61,7 +61,9 @@
5.4 iter = razor_package_iterator_create(set);
5.5 pattern = argv[i];
5.6 count = 0;
5.7 - while (razor_package_iterator_next(iter, &package, RAZOR_DETAIL_NAME, &name, NULL)) {
5.8 + while (razor_package_iterator_next(iter, &package,
5.9 + RAZOR_DETAIL_NAME, &name,
5.10 + RAZOR_DETAIL_LAST)) {
5.11 if (fnmatch(pattern, name, 0) != 0)
5.12 continue;
5.13
5.14 @@ -89,7 +91,8 @@
5.15 while (razor_package_iterator_next(iter, &package,
5.16 RAZOR_DETAIL_NAME, &name,
5.17 RAZOR_DETAIL_VERSION, &version,
5.18 - RAZOR_DETAIL_ARCH, &arch, NULL)) {
5.19 + RAZOR_DETAIL_ARCH, &arch,
5.20 + RAZOR_DETAIL_LAST)) {
5.21 if (flags & LIST_PACKAGES_ONLY_NAMES)
5.22 printf("%s\n", name);
5.23 else
5.24 @@ -167,7 +170,10 @@
5.25 set = razor_set_open(repo_filename);
5.26 pi = create_iterator_from_argv(set, argc, argv);
5.27 while (razor_package_iterator_next(pi, &package,
5.28 - &name, &version, &arch))
5.29 + RAZOR_DETAIL_NAME, &name,
5.30 + RAZOR_DETAIL_VERSION, &version,
5.31 + RAZOR_DETAIL_ARCH, &arch,
5.32 + RAZOR_DETAIL_LAST))
5.33 list_package_properties(set, package, type);
5.34 razor_package_iterator_destroy(pi);
5.35 razor_set_destroy(set);
5.36 @@ -253,7 +259,10 @@
5.37
5.38 pi = create_iterator_from_argv(set, argc, argv);
5.39 while (razor_package_iterator_next(pi, &package,
5.40 - &name, &version, &arch))
5.41 + RAZOR_DETAIL_NAME, &name,
5.42 + RAZOR_DETAIL_VERSION, &version,
5.43 + RAZOR_DETAIL_ARCH, &arch,
5.44 + RAZOR_DETAIL_LAST))
5.45 razor_set_list_package_files(set, package);
5.46 razor_package_iterator_destroy(pi);
5.47
5.48 @@ -445,7 +454,8 @@
5.49
5.50 pi = razor_package_iterator_create(set);
5.51 while (razor_package_iterator_next(pi, &package,
5.52 - RAZOR_DETAIL_NAME, &name, NULL)) {
5.53 + RAZOR_DETAIL_NAME, &name,
5.54 + RAZOR_DETAIL_LAST)) {
5.55 if (pattern && fnmatch(pattern, name, 0) == 0) {
5.56 razor_transaction_update_package(trans, package);
5.57 matches++;
5.58 @@ -466,7 +476,9 @@
5.59 int matches = 0;
5.60
5.61 pi = razor_package_iterator_create(set);
5.62 - while (razor_package_iterator_next(pi, &package, RAZOR_DETAIL_NAME, &name, NULL)) {
5.63 + while (razor_package_iterator_next(pi, &package,
5.64 + RAZOR_DETAIL_NAME, &name,
5.65 + RAZOR_DETAIL_LAST)) {
5.66 if (pattern && fnmatch(pattern, name, 0) == 0) {
5.67 razor_transaction_remove_package(trans, package);
5.68 matches++;
5.69 @@ -676,7 +688,8 @@
5.70 while (razor_package_iterator_next(pi, &package,
5.71 RAZOR_DETAIL_NAME, &name,
5.72 RAZOR_DETAIL_VERSION, &version,
5.73 - RAZOR_DETAIL_ARCH, &arch, NULL)) {
5.74 + RAZOR_DETAIL_ARCH, &arch,
5.75 + RAZOR_DETAIL_LAST)) {
5.76 snprintf(url, sizeof url,
5.77 "%s/Packages/%s",
5.78 yum_url, rpm_filename(name, version, arch));
5.79 @@ -708,7 +721,8 @@
5.80 while (razor_package_iterator_next(pi, &package,
5.81 RAZOR_DETAIL_NAME, &name,
5.82 RAZOR_DETAIL_VERSION, &version,
5.83 - RAZOR_DETAIL_ARCH, &arch, NULL)) {
5.84 + RAZOR_DETAIL_ARCH, &arch,
5.85 + RAZOR_DETAIL_LAST)) {
5.86 printf("install %s-%s\n", name, version);
5.87
5.88 snprintf(file, sizeof file,
5.89 @@ -816,7 +830,8 @@
5.90 while (razor_package_iterator_next(pi, &package,
5.91 RAZOR_DETAIL_NAME, &name,
5.92 RAZOR_DETAIL_VERSION, &version,
5.93 - RAZOR_DETAIL_ARCH, &arch, NULL)) {
5.94 + RAZOR_DETAIL_ARCH, &arch,
5.95 + RAZOR_DETAIL_LAST)) {
5.96 if (pattern && fnmatch(pattern, name, 0) != 0)
5.97 continue;
5.98
5.99 @@ -859,7 +874,8 @@
5.100 while (razor_package_iterator_next(pi, &package,
5.101 RAZOR_DETAIL_NAME, &name,
5.102 RAZOR_DETAIL_VERSION, &version,
5.103 - RAZOR_DETAIL_ARCH, &arch, NULL)) {
5.104 + RAZOR_DETAIL_ARCH, &arch,
5.105 + RAZOR_DETAIL_LAST)) {
5.106 if (pattern && fnmatch(pattern, name, 0) != 0)
5.107 continue;
5.108
5.109 @@ -868,7 +884,7 @@
5.110 RAZOR_DETAIL_DESCRIPTION, &description,
5.111 RAZOR_DETAIL_URL, &url,
5.112 RAZOR_DETAIL_LICENSE, &license,
5.113 - NULL);
5.114 + RAZOR_DETAIL_LAST);
5.115
5.116 printf ("Name: %s\n", name);
5.117 printf ("Arch: %s\n", arch);
5.118 @@ -920,7 +936,7 @@
5.119 RAZOR_DETAIL_DESCRIPTION, &description,
5.120 RAZOR_DETAIL_URL, &url,
5.121 RAZOR_DETAIL_LICENSE, &license,
5.122 - NULL)) {
5.123 + RAZOR_DETAIL_LAST)) {
5.124 if (!fnmatch(pattern, name, FNM_CASEFOLD) ||
5.125 !fnmatch(pattern, url, FNM_CASEFOLD) ||
5.126 !fnmatch(pattern, summary, FNM_CASEFOLD) ||
6.1 --- a/src/rpm.c Mon Jun 30 13:28:59 2008 -0400
6.2 +++ b/src/rpm.c Tue Jul 01 09:22:25 2008 +0100
6.3 @@ -313,7 +313,8 @@
6.4 pi = razor_package_iterator_create(set);
6.5
6.6 while (razor_package_iterator_next(pi, &package,
6.7 - RAZOR_DETAIL_NAME, &name, NULL)) {
6.8 + RAZOR_DETAIL_NAME, &name,
6.9 + RAZOR_DETAIL_LAST)) {
6.10 while (cmp = strcmp(argv[i], name), cmp < 0 && i < argc) {
6.11 fprintf(stderr, "error: package %s is not installed\n",
6.12 argv[i]);
6.13 @@ -422,7 +423,7 @@
6.14 RAZOR_DETAIL_DESCRIPTION, &description,
6.15 RAZOR_DETAIL_URL, &url,
6.16 RAZOR_DETAIL_LICENSE, &license,
6.17 - NULL);
6.18 + RAZOR_DETAIL_LAST);
6.19
6.20 printf("Name: %s\n", name);
6.21 printf("Arch: %s\n", arch);
6.22 @@ -494,7 +495,8 @@
6.23 while (razor_package_iterator_next(pi, &package,
6.24 RAZOR_DETAIL_NAME, &name,
6.25 RAZOR_DETAIL_VERSION, &version,
6.26 - RAZOR_DETAIL_ARCH, &arch, NULL)) {
6.27 + RAZOR_DETAIL_ARCH, &arch,
6.28 + RAZOR_DETAIL_LAST)) {
6.29 if (option_conflicts)
6.30 print_package_properties(set, package,
6.31 RAZOR_PROPERTY_CONFLICTS);
6.32 @@ -548,7 +550,8 @@
6.33 while (razor_package_iterator_next(pi, &package,
6.34 RAZOR_DETAIL_NAME, &name,
6.35 RAZOR_DETAIL_VERSION, &version,
6.36 - RAZOR_DETAIL_ARCH, &arch, NULL)) {
6.37 + RAZOR_DETAIL_ARCH, &arch,
6.38 + RAZOR_DETAIL_LAST)) {
6.39 printf("verify %s-%s.%s - not implemented\n",
6.40 name, version, arch);
6.41 }
6.42 @@ -593,7 +596,7 @@
6.43 add_command_line_packages(set, query, argc, argv);
6.44
6.45 pi = razor_package_query_finish(query);
6.46 - while (razor_package_iterator_next(pi, &package, NULL))
6.47 + while (razor_package_iterator_next(pi, &package, RAZOR_DETAIL_LAST))
6.48 razor_transaction_remove_package(trans, package);
6.49 razor_package_iterator_destroy(pi);
6.50
6.51 @@ -635,7 +638,7 @@
6.52 trans = razor_transaction_create(set, upstream);
6.53
6.54 pi = razor_package_iterator_create(upstream);
6.55 - while (razor_package_iterator_next(pi, &package, NULL))
6.56 + while (razor_package_iterator_next(pi, &package, RAZOR_DETAIL_LAST))
6.57 razor_transaction_install_package(trans, package);
6.58 razor_package_iterator_destroy(pi);
6.59
6.60 @@ -677,7 +680,7 @@
6.61 trans = razor_transaction_create(set, upstream);
6.62
6.63 pi = razor_package_iterator_create(upstream);
6.64 - while (razor_package_iterator_next(pi, &package, NULL))
6.65 + while (razor_package_iterator_next(pi, &package, RAZOR_DETAIL_LAST))
6.66 razor_transaction_update_package(trans, package);
6.67 razor_package_iterator_destroy(pi);
6.68
7.1 --- a/src/test-driver.c Mon Jun 30 13:28:59 2008 -0400
7.2 +++ b/src/test-driver.c Tue Jul 01 09:22:25 2008 +0100
7.3 @@ -293,7 +293,10 @@
7.4 const char *name, *version, *arch;
7.5
7.6 pi = razor_package_iterator_create(set);
7.7 - while (razor_package_iterator_next(pi, &p, &name, &version, &arch)) {
7.8 + while (razor_package_iterator_next(pi, &p, RAZOR_DETAIL_NAME, &name,
7.9 + RAZOR_DETAIL_VERSION, &version,
7.10 + RAZOR_DETAIL_ARCH, &arch,
7.11 + RAZOR_DETAIL_LAST)) {
7.12 if (strcmp(package, name) == 0)
7.13 break;
7.14 }