Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
To reduce confusion spell out exactly what type of change pkg_version_change() returns. This also allows pkg_change_t to be used directly as an array index in pkg_jobs.c
Matthew Seaman committed 12 years ago
commit e3e0edafb3bc430f10991605d5542b6668ef2e09
parent 99c4792
6 files changed +44 -23
modified libpkg/pkg.h.in
@@ -456,6 +456,17 @@ typedef enum {
	EPKG_INSECURE,
} pkg_error_t;

+
/**
+
 * Upgrade, downgrade or reinstall?
+
 */
+

+
typedef enum {
+
	PKG_DOWNGRADE = 0,
+
	PKG_REINSTALL,
+
	PKG_UPGRADE,
+
} pkg_change_t;
+

+

#define PKG_OPEN_MANIFEST_ONLY 0x1
#define PKG_OPEN_MANIFEST_COMPACT (0x1 << 1)

@@ -1178,7 +1189,7 @@ const char *pkg_config_name(struct pkg_config *c);
 * @todo Document
 */
int pkg_version_cmp(const char * const , const char * const);
-
int pkg_version_change(const struct pkg * restrict);
+
pkg_change_t pkg_version_change(const struct pkg * restrict);

/**
 * Fetch a file.
modified libpkg/pkg_event.c
@@ -548,17 +548,17 @@ pkg_emit_upgrade_finished(struct pkg *p)
	pkg_config_bool(PKG_CONFIG_SYSLOG, &syslog_enabled);
	if (syslog_enabled) {
		const char *actions[] = {
-
		    "upgraded", "reinstalled", "downgraded"
+
			[PKG_DOWNGRADE] = "downgraded",
+
			[PKG_REINSTALL] = "reinstalled",
+
			[PKG_UPGRADE]   = "upgraded",
		};
-
		int num_actions = sizeof(actions) / sizeof(*actions);
-
		int action;
+
		pkg_change_t action;

		pkg_get(p, PKG_NAME, &name, PKG_OLD_VERSION, &version,
		    PKG_VERSION, &newversion);
-
		action = pkg_version_change(p) + 1;
-
		if (action >= 0 && action < num_actions)
-
			syslog(LOG_NOTICE, "%s %s: %s -> %s ",
-
			    name, actions[action], version, newversion);
+
		action = pkg_version_change(p);
+
		syslog(LOG_NOTICE, "%s %s: %s -> %s ",
+
		    name, actions[action], version, newversion);
	}

	pkg_emit_event(&ev);
modified libpkg/pkg_jobs.c
@@ -643,7 +643,8 @@ newer_than_local_pkg(struct pkg_jobs *j, struct pkg *rp, bool force)
	struct pkg_dep *ld = NULL, *rd = NULL;
	struct pkg_shlib *ls = NULL, *rs = NULL;
	bool automatic;
-
	int cmp = 0, ret1, ret2;
+
	int	ret1, ret2;
+
	pkg_change_t cmp;

	pkg_get(rp, PKG_ORIGIN, &origin,
	    PKG_REPONAME, &reponame);
@@ -688,11 +689,11 @@ newer_than_local_pkg(struct pkg_jobs *j, struct pkg *rp, bool force)
	/* compare versions */
	cmp = pkg_version_change(rp);

-
	if (cmp == -1) {
+
	if (cmp == PKG_UPGRADE) {
		pkg_free(lp);
		return (true);
	}
-
	if (cmp == 1) {
+
	if (cmp == PKG_DOWNGRADE) {
		pkg_free(lp);
		return (false);
	}
modified libpkg/pkg_version.c
@@ -335,12 +335,21 @@ pkg_version_cmp(const char * const pkg1, const char * const pkg2)
	return result;
}

-
int
+
pkg_change_t
pkg_version_change(const struct pkg * restrict pkg)
{
	const char *version, *oldversion;

	pkg_get(pkg, PKG_VERSION, &version,
	    PKG_OLD_VERSION, &oldversion);
-
	return (pkg_version_cmp(oldversion, version));
+

+
	switch (pkg_version_cmp(oldversion, version)) {
+
	case -1:
+
		return PKG_UPGRADE;
+
	default:		/* placate the compiler */
+
	case 0:
+
		return PKG_REINSTALL;
+
	case 1:
+
		return PKG_DOWNGRADE;
+
	}
}
modified pkg/event.c
@@ -209,16 +209,16 @@ event_callback(void *data, struct pkg_event *ev)
			if (nbactions > 0)
				sbuf_printf(msg, "[%d/%d] ", nbdone, nbactions);
			switch (pkg_version_change(pkg)) {
-
			case 1:
+
			case PKG_DOWNGRADE:
				pkg_sbuf_printf(msg,
				    "Downgrading %n from %V to %v...",
				    pkg, pkg, pkg);
				break;
-
			case 0:
+
			case PKG_REINSTALL:
				pkg_sbuf_printf(msg, "Reinstalling %n-%V",
				    pkg, pkg);
				break;
-
			case -1:
+
			case PKG_UPGRADE:
				pkg_sbuf_printf(msg,
				    "Upgrading %n from %V to %v...",
						pkg, pkg, pkg);
modified pkg/utils.c
@@ -536,7 +536,7 @@ print_jobs_summary(struct pkg_jobs *jobs, const char *msg, ...)
	struct pkg *pkg = NULL;
	char path[MAXPATHLEN];
	struct stat st;
-
	const char *version, *oldversion, *cachedir, *why, *reponame;
+
	const char *oldversion, *cachedir, *why, *reponame;
	int64_t dlsize, oldsize, newsize;
	int64_t flatsize, oldflatsize, pkgsize;
	char size[7];
@@ -570,13 +570,13 @@ print_jobs_summary(struct pkg_jobs *jobs, const char *msg, ...)
				 * cannot have been locked yet. */
				if (oldversion != NULL) {
					switch(pkg_version_change(pkg)) {
-
					case -1:
+
					case PKG_UPGRADE:
						pkg_printf("and may not be upgraded to version %v\n", pkg);
						break;
-
					case 0:
+
					case PKG_REINSTALL:
						printf("and may not be reinstalled\n");
						break;
-
					case 1:
+
					case PKG_DOWNGRADE:
						pkg_printf("and may not be downgraded to version %v\n", pkg);
						break;
					}
@@ -611,13 +611,13 @@ print_jobs_summary(struct pkg_jobs *jobs, const char *msg, ...)

			if (oldversion != NULL) {
				switch (pkg_version_change(pkg)) {
-
				case 1:
+
				case PKG_DOWNGRADE:
					pkg_printf("\tDowngrading %n: %V -> %v", pkg, pkg, pkg);
					if (pkg_repos_count() > 1)
						printf(" [%s]", reponame);
					printf("\n");
					break;
-
				case 0:
+
				case PKG_REINSTALL:
					pkg_printf("\tReinstalling %n-%v", pkg, pkg);
					if (pkg_repos_count() > 1)
						printf(" [%s]", reponame);
@@ -625,7 +625,7 @@ print_jobs_summary(struct pkg_jobs *jobs, const char *msg, ...)
						printf(" (%s)", why);
					printf("\n");
					break;
-
				case -1:
+
				case PKG_UPGRADE:
					pkg_printf("\tUpgrading %n: %V -> %v", pkg, pkg, pkg);
					if (pkg_repos_count() > 1)
						printf(" [%s]", reponame);