Fix the razor_set_diff() callback prototype.
authorKristian H?gsberg <krh@redhat.com>
Fri Jun 20 21:38:29 2008 -0400 (2008-06-20)
changeset 253338a577cdfd2
parent 252 3e696ec612a5
child 254 ccb1c11968ab
Fix the razor_set_diff() callback prototype.

The old proto type didn't let us pass the razor_package.
librazor/razor.c
librazor/razor.h
src/main.c
src/rpm.c
     1.1 --- a/librazor/razor.c	Fri Jun 20 21:33:29 2008 -0400
     1.2 +++ b/librazor/razor.c	Fri Jun 20 21:38:29 2008 -0400
     1.3 @@ -33,8 +33,8 @@
     1.4  #include <ctype.h>
     1.5  #include <fnmatch.h>
     1.6  
     1.7 +#include "razor-internal.h"
     1.8  #include "razor.h"
     1.9 -#include "razor-internal.h"
    1.10  
    1.11  void *
    1.12  zalloc(size_t size)
    1.13 @@ -423,7 +423,7 @@
    1.14  
    1.15  void
    1.16  razor_set_diff(struct razor_set *set, struct razor_set *upstream,
    1.17 -	       razor_package_callback_t callback, void *data)
    1.18 +	       razor_diff_callback_t callback, void *data)
    1.19  {
    1.20   	struct razor_package_iterator *pi1, *pi2;
    1.21   	struct razor_package *p1, *p2;
    1.22 @@ -446,9 +446,11 @@
    1.23  		}
    1.24  
    1.25  		if (p2 == NULL || res < 0)
    1.26 -			callback(name1, version1, NULL, arch1, data);
    1.27 +			callback(RAZOR_DIFF_ACTION_REMOVE,
    1.28 +				 p1, name1, version1, arch1, data);
    1.29  		else if (p1 == NULL || res > 0)
    1.30 -			callback(name2, NULL, version2, arch2, data);
    1.31 +			callback(RAZOR_DIFF_ACTION_ADD,
    1.32 +				 p2, name2, version2, arch2, data);
    1.33  
    1.34  		if (p1 != NULL && res <= 0)
    1.35  			razor_package_iterator_next(pi1, &p1,
     2.1 --- a/librazor/razor.h	Fri Jun 20 21:33:29 2008 -0400
     2.2 +++ b/librazor/razor.h	Fri Jun 20 21:38:29 2008 -0400
     2.3 @@ -106,14 +106,21 @@
     2.4  
     2.5  void razor_set_list_unsatisfied(struct razor_set *set);
     2.6  
     2.7 -typedef void (*razor_package_callback_t)(const char *name,
     2.8 -					 const char *old_version,
     2.9 -					 const char *new_version,
    2.10 -					 const char *arch,
    2.11 -					 void *data);
    2.12 +enum razor_diff_action {
    2.13 +	RAZOR_DIFF_ACTION_ADD,
    2.14 +	RAZOR_DIFF_ACTION_REMOVE,
    2.15 +};
    2.16 +
    2.17 +typedef void (*razor_diff_callback_t)(enum razor_diff_action action,
    2.18 +				      struct razor_package *package,
    2.19 +				      const char *name,
    2.20 +				      const char *version,
    2.21 +				      const char *arch,
    2.22 +				      void *data);
    2.23 +
    2.24  void
    2.25  razor_set_diff(struct razor_set *set, struct razor_set *upstream,
    2.26 -	       razor_package_callback_t callback, void *data);
    2.27 +	       razor_diff_callback_t callback, void *data);
    2.28  
    2.29  /* Package transactions */
    2.30  
     3.1 --- a/src/main.c	Fri Jun 20 21:33:29 2008 -0400
     3.2 +++ b/src/main.c	Fri Jun 20 21:38:29 2008 -0400
     3.3 @@ -489,14 +489,17 @@
     3.4  }
     3.5  
     3.6  static void
     3.7 -print_diff(const char *name,
     3.8 -	   const char *old_version, const char *new_version, const char *arch,
     3.9 +print_diff(enum razor_diff_action action,
    3.10 +	   struct razor_package *package,
    3.11 +	   const char *name,
    3.12 +	   const char *version,
    3.13 +	   const char *arch,
    3.14  	   void *data)
    3.15  {
    3.16 -	if (old_version)
    3.17 -		printf("removing %s %s\n", name, old_version);
    3.18 -	else
    3.19 -		printf("install %s %s\n", name, new_version);
    3.20 +	if (action == RAZOR_DIFF_ACTION_ADD)
    3.21 +		printf("install %s-%s.%s\n", name, version, arch);
    3.22 +	if (action == RAZOR_DIFF_ACTION_REMOVE)
    3.23 +		printf("remove %s-%s.%s\n", name, version, arch);
    3.24  }
    3.25  
    3.26  static int
    3.27 @@ -576,9 +579,10 @@
    3.28  }
    3.29  
    3.30  static void
    3.31 -download_package(const char *name,
    3.32 -		 const char *old_version,
    3.33 -		 const char *new_version,
    3.34 +download_package(enum razor_diff_action action,
    3.35 +		 struct razor_package *package,
    3.36 +		 const char *name,
    3.37 +		 const char *version,
    3.38  		 const char *arch,
    3.39  		 void *data)
    3.40  {
    3.41 @@ -586,15 +590,15 @@
    3.42  	const char *v;
    3.43  	int *errors = data;
    3.44  
    3.45 -	if (old_version)
    3.46 +	if (action != RAZOR_DIFF_ACTION_ADD)
    3.47  		return;
    3.48  
    3.49  	/* Skip epoch */
    3.50 -	v = strchr(new_version, ':');
    3.51 +	v = strchr(version, ':');
    3.52  	if (v != NULL)
    3.53  		v = v + 1;
    3.54  	else
    3.55 -		v = new_version;
    3.56 +		v = version;
    3.57  
    3.58  	snprintf(url, sizeof url,
    3.59  		 "%s/Packages/%s-%s.%s.rpm", yum_url, name, v, arch);
    3.60 @@ -605,9 +609,10 @@
    3.61  }
    3.62  
    3.63  static void
    3.64 -install_package(const char *name,
    3.65 -		const char *old_version,
    3.66 -		const char *new_version,
    3.67 +install_package(enum razor_diff_action action,
    3.68 +		struct razor_package *package,
    3.69 +		const char *name,
    3.70 +		const char *version,
    3.71  		const char *arch,
    3.72  		void *data)
    3.73  {
    3.74 @@ -615,17 +620,17 @@
    3.75  	char file[PATH_MAX];
    3.76  	struct razor_rpm *rpm;
    3.77  
    3.78 -	if (old_version) {
    3.79 -		printf("removing %s %s not handled\n", name, old_version);
    3.80 +	if (action == RAZOR_DIFF_ACTION_REMOVE) {
    3.81 +		printf("removing %s %s not handled\n", name, version);
    3.82  		return;
    3.83  	}
    3.84  
    3.85  	/* Skip epoch */
    3.86 -	v = strchr(new_version, ':');
    3.87 +	v = strchr(version, ':');
    3.88  	if (v != NULL)
    3.89  		v = v + 1;
    3.90  	else
    3.91 -		v = new_version;
    3.92 +		v = version;
    3.93  
    3.94  	printf("install %s %s\n", name, v);
    3.95  	snprintf(file, sizeof file, "rpms/%s-%s.%s.rpm", name, v, arch);
     4.1 --- a/src/rpm.c	Fri Jun 20 21:33:29 2008 -0400
     4.2 +++ b/src/rpm.c	Fri Jun 20 21:38:29 2008 -0400
     4.3 @@ -507,12 +507,17 @@
     4.4  }
     4.5  
     4.6  static void
     4.7 -remove_package(const char *name,
     4.8 -	       const char *old_version, const char *new_version,
     4.9 -	       const char *arch, void *data)
    4.10 +update_package(enum razor_diff_action action,
    4.11 +	       struct razor_package *package,
    4.12 +	       const char *name,
    4.13 +	       const char *version,
    4.14 +	       const char *arch,
    4.15 +	       void *data)
    4.16  {
    4.17 -	if (old_version)
    4.18 -		printf("remove %s-%s.%s\n", name, old_version, arch);
    4.19 +	if (action == RAZOR_DIFF_ACTION_ADD)
    4.20 +		printf("install %s-%s.%s\n", name, version, arch);
    4.21 +	if (action == RAZOR_DIFF_ACTION_REMOVE)
    4.22 +		printf("remove %s-%s.%s\n", name, version, arch);
    4.23  }
    4.24  
    4.25  static void
    4.26 @@ -555,7 +560,7 @@
    4.27  	next = razor_transaction_finish(trans);
    4.28  
    4.29  	if (!option_justdb)
    4.30 -		razor_set_diff(set, next, remove_package, NULL);
    4.31 +		razor_set_diff(set, next, update_package, NULL);
    4.32  
    4.33  	razor_set_destroy(set);
    4.34  	razor_set_destroy(upstream);
    4.35 @@ -564,15 +569,6 @@
    4.36  }
    4.37  
    4.38  static void
    4.39 -install_package(const char *name,
    4.40 -		const char *old_version, const char *new_version,
    4.41 -		const char *arch, void *data)
    4.42 -{
    4.43 -	if (new_version)
    4.44 -		printf("install %s-%s.%s\n", name, new_version, arch);
    4.45 -}
    4.46 -
    4.47 -static void
    4.48  command_install(int argc, const char *argv[])
    4.49  {
    4.50  	struct razor_set *set, *upstream, *next;
    4.51 @@ -608,7 +604,7 @@
    4.52  	next = razor_transaction_finish(trans);
    4.53  
    4.54  	if (!option_justdb)
    4.55 -		razor_set_diff(set, next, install_package, NULL);
    4.56 +		razor_set_diff(set, next, update_package, NULL);
    4.57  
    4.58  	razor_set_destroy(set);
    4.59  	razor_set_destroy(upstream);
    4.60 @@ -617,17 +613,6 @@
    4.61  }
    4.62  
    4.63  static void
    4.64 -update_package(const char *name,
    4.65 -	       const char *old_version, const char *new_version,
    4.66 -	       const char *arch, void *data)
    4.67 -{
    4.68 -	if (old_version)
    4.69 -		printf("remove %s-%s.%s\n", name, old_version, arch);
    4.70 -	if (new_version)
    4.71 -		printf("install %s-%s.%s\n", name, new_version, arch);
    4.72 -}
    4.73 -
    4.74 -static void
    4.75  command_update(int argc, const char *argv[])
    4.76  {
    4.77  	struct razor_set *set, *upstream, *next;