Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Merge pull request #349 from namore/master
Marin Atanasov Nikolov committed 13 years ago
commit a5cbd5a265edd80ffaa1e89e477bbed10ddd8e52
parent 419e47b20ea93832409e3ba0f2b473c03bb708b2
1 file changed +9 -2
modified libpkg/pkg_add.c
@@ -127,6 +127,8 @@ pkg_add(struct pkgdb *db, const char *path, unsigned flags)
	struct archive_entry *ae;
	struct pkg	*pkg = NULL;
	struct pkg_dep	*dep = NULL;
+
	struct pkg      *pkg_inst = NULL;
+
	struct pkgdb_it *it = NULL;
	bool		 extract = true;
	bool		 handle_rc = false;
	char		 dpath[MAXPATHLEN + 1];
@@ -181,10 +183,15 @@ pkg_add(struct pkgdb *db, const char *path, unsigned flags)
	 * Check if the package is already installed
	 */

-
	ret = pkg_is_installed(db, origin);
+
	ret = EPKG_FATAL; // assume package is not installed
+
	if ((it = pkgdb_query(db, origin, MATCH_EXACT)) != NULL) {
+
		ret = pkgdb_it_next(it, &pkg_inst, PKG_LOAD_BASIC);
+
		pkgdb_it_free(it);
+
	}

	if (ret == EPKG_OK) {
-
		pkg_emit_already_installed(pkg);
+
		pkg_emit_already_installed(pkg_inst);
+
		pkg_free(pkg_inst);
		retcode = EPKG_INSTALLED;
		goto cleanup;
	} else if (ret != EPKG_END) {