diff options
author | Lennart Poettering <lennart@poettering.net> | 2021-01-26 12:28:23 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2021-03-02 15:07:11 +0100 |
commit | 8dcb891c199aeb22fe0fe3e8d1f830c0de8a0c24 (patch) | |
tree | 6a66ed1b78adf49ef8d77b48a43f557afa779c15 /src/basic/path-util.h | |
parent | 7e40042b55c245ffd449e764edfc4dd7c0aa0094 (diff) | |
download | systemd-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.h | 1 |
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_; |