Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix reverse dependencies (pointy hat jlaffaye)
Baptiste Daroussin committed 14 years ago
commit ebd8b77ee2220a4c708aba64322c9e5288062a62
parent 58f7abf
5 files changed +33 -3
modified libpkg/pkg.c
@@ -432,6 +432,34 @@ pkg_adddep(struct pkg *pkg, const char *name, const char *origin, const char *ve
}

int
+
pkg_addrdep(struct pkg *pkg, const char *name, const char *origin, const char *version)
+
{
+
	struct pkg_dep *d;
+

+
	if (pkg == NULL)
+
		return (ERROR_BAD_ARG("pkg"));
+

+
	if (name == NULL || name[0] == '\0')
+
		return (ERROR_BAD_ARG("name"));
+

+
	if (origin == NULL || origin[0] == '\0')
+
		return (ERROR_BAD_ARG("origin"));
+

+
	if (version == NULL || version[0] == '\0')
+
		return (ERROR_BAD_ARG("version"));
+

+
	pkg_dep_new(&d);
+

+
	sbuf_set(&d->origin, origin);
+
	sbuf_set(&d->name, name);
+
	sbuf_set(&d->version, version);
+

+
	STAILQ_INSERT_TAIL(&pkg->rdeps, d, next);
+

+
	return (EPKG_OK);
+
}
+

+
int
pkg_addfile(struct pkg *pkg, const char *path, const char *sha256)
{
	struct pkg_file *f;
modified libpkg/pkg.h
@@ -294,6 +294,8 @@ int pkg_setnewpkgsize(struct pkg *pkg, int64_t size);
 */
int pkg_adddep(struct pkg *pkg, const char *name, const char *origin, const
			   char *version);
+
int pkg_addrdep(struct pkg *pkg, const char *name, const char *origin, const
+
			   char *version);

/**
 * Allocate a new struct pkg_file and add it to the files of pkg.
modified libpkg/pkg_delete.c
@@ -41,7 +41,7 @@ pkg_delete(struct pkg *pkg, struct pkgdb *db, int force)
	while (pkg_rdeps(pkg, &rdep) == EPKG_OK) {
		if (rdep_msg == NULL) {
			rdep_msg = sbuf_new_auto();
-
			sbuf_printf(rdep_msg, "%s-%s is required by other packages:", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));
+
			sbuf_printf(rdep_msg, "%s-%s is required by other packages:", pkg_dep_name(rdep), pkg_dep_version(rdep));
		}
		sbuf_cat(rdep_msg, " ");
		sbuf_printf(rdep_msg, "%s-%s", pkg_dep_name(rdep), pkg_dep_version(rdep));
modified libpkg/pkgdb.c
@@ -583,7 +583,7 @@ pkgdb_loadrdeps(struct pkgdb *db, struct pkg *pkg)
	sqlite3_bind_text(stmt, 1, pkg_get(pkg, PKG_ORIGIN), -1, SQLITE_STATIC);

	while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) {
-
		pkg_adddep(pkg, sqlite3_column_text(stmt, 0), sqlite3_column_text(stmt, 1),
+
		pkg_addrdep(pkg, sqlite3_column_text(stmt, 0), sqlite3_column_text(stmt, 1),
				   sqlite3_column_text(stmt, 2));
	}
	sqlite3_finalize(stmt);
modified pkg/info.c
@@ -41,7 +41,7 @@ print_info(struct pkg *pkg, unsigned int opt)
		if (!(opt & INFO_QUIET))
			printf("%s-%s is required by:\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));

-
		while (pkg_deps(pkg, &dep) == EPKG_OK) {
+
		while (pkg_rdeps(pkg, &dep) == EPKG_OK) {
			printf("%s-%s\n", pkg_dep_name(dep), pkg_dep_version(dep));
		}