Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Do not distinguish anymore between dirrm and drirmtry
Baptiste Daroussin committed 11 years ago
commit 52aa9339deb8ff946d85fd151eb61cc06c343721
parent 73217ef
3 files changed +11 -16
modified libpkg/pkg_add.c
@@ -357,7 +357,7 @@ pkg_add_cleanup_old(struct pkg *old, struct pkg *new, int flags)
			HASH_FIND_STR(new->dirs, d->path, cd);

			if (cd == NULL)
-
				pkg_delete_dir(old, d, flags & PKG_DELETE_FORCE ? 1 : 0);
+
				pkg_delete_dir(old, d);
		}
	}

@@ -486,7 +486,7 @@ pkg_add_common(struct pkgdb *db, const char *path, unsigned flags,
	if (extract && (retcode = do_extract(a, ae, location, nfiles, pkg)) != EPKG_OK) {
		/* If the add failed, clean up (silently) */
		pkg_delete_files(pkg, 2);
-
		pkg_delete_dirs(db, pkg, 1);
+
		pkg_delete_dirs(db, pkg);
		goto cleanup_reg;
	}

modified libpkg/pkg_delete.c
@@ -94,7 +94,7 @@ pkg_delete(struct pkg *pkg, struct pkgdb *db, unsigned flags)
			return (ret);
	}

-
	ret = pkg_delete_dirs(db, pkg, flags & PKG_DELETE_FORCE);
+
	ret = pkg_delete_dirs(db, pkg);
	if (ret != EPKG_OK)
		return (ret);

@@ -183,7 +183,7 @@ pkg_delete_files(struct pkg *pkg, unsigned force)
}

void
-
pkg_delete_dir(struct pkg *pkg, struct pkg_dir *dir, unsigned force)
+
pkg_delete_dir(struct pkg *pkg, struct pkg_dir *dir)
{
	const ucl_object_t 	*obj, *an;
	char			 fpath[MAXPATHLEN];
@@ -193,18 +193,13 @@ pkg_delete_dir(struct pkg *pkg, struct pkg_dir *dir, unsigned force)
	snprintf(fpath, sizeof(fpath), "%s%s",
		obj ? pkg_object_string(obj) : "" , pkg_dir_path(dir) );

-
	if (pkg_dir_try(dir)) {
-
		if (rmdir(fpath) == -1 &&
-
						errno != ENOTEMPTY && errno != EBUSY && !force)
-
			pkg_emit_errno("rmdir", fpath);
-
	} else {
-
		if (rmdir(fpath) == -1 && !force)
-
			pkg_emit_errno("rmdir", fpath);
-
	}
+
	if (rmdir(fpath) == -1 &&
+
	    errno != ENOTEMPTY && errno != EBUSY)
+
		pkg_emit_errno("rmdir", fpath);
}

int
-
pkg_delete_dirs(__unused struct pkgdb *db, struct pkg *pkg, bool force)
+
pkg_delete_dirs(__unused struct pkgdb *db, struct pkg *pkg)
{
	struct pkg_dir		*dir = NULL;

@@ -212,7 +207,7 @@ pkg_delete_dirs(__unused struct pkgdb *db, struct pkg *pkg, bool force)
		if (dir->keep == 1)
			continue;

-
		pkg_delete_dir(pkg, dir, force);
+
		pkg_delete_dir(pkg, dir);
	}

	return (EPKG_OK);
modified libpkg/private/pkg.h
@@ -548,7 +548,7 @@ pkg_formats packing_format_from_string(const char *str);
const char* packing_format_to_string(pkg_formats format);

int pkg_delete_files(struct pkg *pkg, unsigned force);
-
int pkg_delete_dirs(struct pkgdb *db, struct pkg *pkg, bool force);
+
int pkg_delete_dirs(struct pkgdb *db, struct pkg *pkg);

int pkg_conflicts_request_resolve(struct pkg_jobs *j);
int pkg_conflicts_append_pkg(struct pkg *p, struct pkg_jobs *j);
@@ -613,7 +613,7 @@ int pkg_symlink_cksum(const char *path, const char *root, char *cksum);
int pkg_add_upgrade(struct pkgdb *db, const char *path, unsigned flags,
    struct pkg_manifest_key *keys, const char *location,
    struct pkg *rp, struct pkg *lp);
-
void pkg_delete_dir(struct pkg *pkg, struct pkg_dir *dir, unsigned force);
+
void pkg_delete_dir(struct pkg *pkg, struct pkg_dir *dir);
void pkg_delete_file(struct pkg *pkg, struct pkg_file *file, unsigned force);

#endif