From 03469b770bbe056b8df3bd109926b3941c0da878 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 21 Dec 2022 16:51:05 +0100 Subject: =?UTF-8?q?shared:=20port=20various=20shared=20helpers=20basename(?= =?UTF-8?q?)=20=E2=86=92=20path=5Fextract=5Ffilename()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/generator.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/shared/generator.c') diff --git a/src/shared/generator.c b/src/shared/generator.c index 7eed3b76c1..f8719b5323 100644 --- a/src/shared/generator.c +++ b/src/shared/generator.c @@ -60,13 +60,19 @@ int generator_open_unit_file( } int generator_add_symlink(const char *dir, const char *dst, const char *dep_type, const char *src) { + _cleanup_free_ char *bn = NULL; + const char *from, *to; + int r; + /* Adds a symlink from ./ to (if src is absolute) * or ../ (otherwise). */ - const char *from, *to; + r = path_extract_filename(src, &bn); + if (r < 0) + return log_error_errno(r, "Failed to extract filename from '%s': %m", src); from = path_is_absolute(src) ? src : strjoina("../", src); - to = strjoina(dir, "/", dst, ".", dep_type, "/", basename(src)); + to = strjoina(dir, "/", dst, ".", dep_type, "/", bn); (void) mkdir_parents_label(to, 0755); if (symlink(from, to) < 0) -- cgit v1.2.1