convert the NULL sentinel to RAZOR_DETAIL_LAST
authorRichard Hughes <richard@hughsie.com>
Tue Jul 01 09:22:25 2008 +0100 (2008-07-01)
changeset 30795b6bcadd6c4
parent 306 cd3954499086
child 308 f4761f529b9e
convert the NULL sentinel to RAZOR_DETAIL_LAST
librazor/iterator.c
librazor/razor.c
librazor/razor.h
librazor/transaction.c
src/main.c
src/rpm.c
src/test-driver.c
     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  	}