summaryrefslogtreecommitdiff
path: root/src/basic/path-util.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-01-26 12:28:23 +0100
committerLennart Poettering <lennart@poettering.net>2021-03-02 15:07:11 +0100
commit8dcb891c199aeb22fe0fe3e8d1f830c0de8a0c24 (patch)
tree6a66ed1b78adf49ef8d77b48a43f557afa779c15 /src/basic/path-util.h
parent7e40042b55c245ffd449e764edfc4dd7c0aa0094 (diff)
downloadsystemd-8dcb891c199aeb22fe0fe3e8d1f830c0de8a0c24.tar.gz
path-util: add path_extract_directory(), to match path_extract_filename()
These two together are a lot like dirname() + basename() but have the benefit that they return clear errors when one passes a special case path to them where the extraction doesn't make sense, i.e. "", "/", "foo", "foo/" and so on. Sooner or later we should probably port all our uses of dirname()/basename() over to this, to catch these special cases more safely.
Diffstat (limited to 'src/basic/path-util.h')
-rw-r--r--src/basic/path-util.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/basic/path-util.h b/src/basic/path-util.h
index ba12b03dbe..74ee6362ea 100644
--- a/src/basic/path-util.h
+++ b/src/basic/path-util.h
@@ -147,6 +147,7 @@ int fsck_exists(const char *fstype);
char* dirname_malloc(const char *path);
const char *last_path_component(const char *path);
int path_extract_filename(const char *p, char **ret);
+int path_extract_directory(const char *p, char **ret);
bool filename_is_valid(const char *p) _pure_;
bool path_is_valid(const char *p) _pure_;