From be2df710451442ead42e922de4d609c22147b007 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 17 Aug 2022 17:53:08 +0000 Subject: [PATCH] util: Speed up pakfire_rmtree() We can already call rmdir() if we know that we have a directory instead of trying unlink() first and then falling back. Signed-off-by: Michael Tremer --- src/libpakfire/util.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/libpakfire/util.c b/src/libpakfire/util.c index ff8523a7a..e051d3abc 100644 --- a/src/libpakfire/util.c +++ b/src/libpakfire/util.c @@ -1054,8 +1054,14 @@ char* pakfire_mkdtemp(char* path) { return mkdtemp(path); } -static int _unlink(const char* path, const struct stat* stat, int typeflag, struct FTW* ftwbuf) { - return remove(path); +static int _unlink(const char* path, const struct stat* stat, + const int type, struct FTW* ftwbuf) { + // Delete directories using rmdir() + if (type & FTW_D) + return rmdir(path); + + // unlink() everything else + return unlink(path); } int pakfire_rmtree(const char* path, int flags) { -- 2.47.3